当前位置:   article > 正文

vue---使用echarts绘制图形_vue绘制图形

vue绘制图形

echarts

提供了数据可视化图表(包括:折线图、柱形图、散点图、饼图、地图、热力图等等)

1、安装【npm install echarts --save】

2、引入

      ①全局引入:在【main.js】中引入将echarts直接绑定在vue实例上,所以在项目中任何页面,直接 this.$echarts方式调用即可。

  1. import echarts from 'echarts'
  2. Vue.prototype.$echarts = echarts
  3. //直接绑定在vue实例上,所以在项目中任何页面,直接 this.$echarts 即可

    ②局部引入:在使用页面引入

import echarts from 'echarts'

3、使用echarts绘制图形

       ①基于准备好的dom初始化echarts实例,通过 【echarts.init】 方法初始化一个 echarts 实例。

           【var myChart = echarts.init(document.getElementById(id), "light");】

     注意:容器dom一定要写出wigth,height样式,让容器具备大小

       ②通过 【setOption】方法绘制图形

           【 myChart.setOption(option);】【let option={....}】

4、option中常用组件/属性介绍

     (1)颜色主题:ECharts4 开始,除了一贯的默认主题外,新内置了两套主题,分别为 'light' 和 'dark'

  使用方式:【var chart = echarts.init(dom, 'light')

  (2)修改背景颜色:【backgroundColor: "#2c343c"

  (3)设置文本样式:【textStyle: { color: "rgba(255, 255, 255, 0.3)" }

  (4)配置阴影:

  1. //阴影的配置
  2. itemStyle: {
  3. // 阴影的大小
  4. shadowBlur: 50,
  5. // 阴影水平方向上的偏移
  6. shadowOffsetX: 0,
  7. // 阴影垂直方向上的偏移
  8. shadowOffsetY: 0,
  9. // 阴影颜色
  10. shadowColor: "rgba(0, 0, 0, 0.6)",
  11. // 通过 emphasis 属性来定制高亮
  12. emphasis: {
  13. shadowBlur: 200,
  14. shadowColor: "rgba(0, 0, 0, 0.9)"
  15. }
  16. },

  (5)设置标签引导线

  1. labelLine: {
  2. lineStyle: {
  3. color: "rgba(255, 255, 255, 0.3)"
  4. }
  5. }

(6)常用组件

组件

常用属性

属性值

xAxis(直角坐标系 X 轴)

position:x 轴的位置。

top、bottom

type:坐标轴类型

'value' 数值轴,适用于连续数据。

'category' 类目轴,适用于离散的类目数据,为该类型时必须通过 data 设置类目数据。

'time' 时间轴,适用于连续的时序数据,与数值轴相比时间轴带有时间的格式化,在刻度计算上也有所不同,例如会根据跨度的范围来决定使用月,星期,日还是小时范围的刻度。

'log' 对数轴。适用于对数数据。

name:坐标轴名称

 

nameLocation:坐标轴名称显示位置。

'start'

'middle' 或者 'center'

'end'

yAxis(直角坐标系 Y 轴)

position:y轴的位置。

left、right

type:坐标轴类型

value、category、time、log 属性与xAxis.type相同

name:坐标轴名称

 

nameLocation:坐标轴名称显示位置。

'start'

'middle' 或者 'center'

'end'

grid(直角坐标系底板)

left/top/right/bottom:grid 组件离容器//右/底侧的距离

数值,如20

百分比,如20%

left属性值也可以是 'left', 'center', 'right'

top属性值也可以是 'top', 'middle', 'bottom'。

series(系列):一组数值以及他们映射成的图

type:图表类型

line(折线图)、bar(柱状图)、pie(饼图)、scatter散点图)、graph(关系图)、tree(树图)、...

name:系列名称

 

data:系列中的数据内容数组。数组项通常为具体的数据项

意,如果系列没有指定 data,并且 option 有 dataset,那么默认使用第一个 dataset。如果指定了 data,则不会再使用 dataset

cursor

pointer

stack:数据堆叠

 

同个类目轴上系列配置相同的stack值后,后一个系列的值会在前一个系列的值上相加

tooltip(提示框组件)

trigger

'item' 数据项图形触发,主要在散点图,饼图等无类目轴的图表中使用。

'axis' 坐标轴触发,主要在柱状图,折线图等会使用类目轴的图表中使用。

'none'  什么都不触发。

axisPointer:{}:坐标轴指示器配置项

axisPointer.type = 'line'  直线指示器

axisPointer.type = 'shadow'  阴影指示器

axisPointer.type = 'none'  无指示器

axisPointer.type = 'cross'  十字准星指示器

legend(图例组件)展现了不同系列的标记(symbol),颜色和名字

type:图例的类型

 

 

'plain':普通图例。缺省就是普通图例。

'scroll':可滚动翻页的图例。当图例数量较多时可以使用

 

data:图例的数据数组

data: [{ name: '系列1', // 强制设置图形为圆。

icon: 'circle', // 设置文本为红色

textStyle: { color: 'red' }

}]

5、实例:

  1. <template>
  2. <div class="chart">
  3. <h1>ECharts学习</h1>
  4. <!-- 为echars准备一个容器dom,一定要给出大小 -->
  5. <div class="chart-wrapper">
  6. <div id="hisChart"></div>
  7. <div id="pieChart"></div>
  8. </div>
  9. </div>
  10. </template>
  11. <script>
  12. import echarts from "echarts";
  13. export default {
  14. mounted() {
  15. this.drawHisChart("hisChart");
  16. this.drawPieChart("pieChart");
  17. },
  18. methods: {
  19. // 绘制柱形图
  20. drawHisChart(id) {
  21. // 基于准备好的dom,初始化echarts实例
  22. var myChart = echarts.init(document.getElementById(id), "light");
  23. // 准备配置
  24. let option = {
  25. title: {
  26. text: "人流量统计"
  27. },
  28. tooltip: {
  29. trigger: "axis",
  30. axisPointer: {
  31. // 坐标轴指示器,坐标轴触发有效
  32. type: "shadow" // 默认为直线,可选为:'line' | 'shadow'
  33. }
  34. },
  35. xAxis: {
  36. data: ["周一", "周二", "周三", "周四", "周五", "周六", "周日"],
  37. name: "时间"
  38. },
  39. yAxis: {
  40. type: "value",
  41. name: "人流量"
  42. },
  43. grid: {
  44. top: 70,
  45. left: "5%"
  46. },
  47. series: [
  48. {
  49. name: "AAA大厦",
  50. type: "bar",
  51. data: [51, 20, 36, 10, 10, 20, 3],
  52. barWidth: 15
  53. },
  54. {
  55. name: "BBB大厦",
  56. type: "bar",
  57. data: [20, 36, 10, 10, 20, 31, 12],
  58. barWidth: 15
  59. }
  60. ],
  61. dataZoom: [
  62. // slider只能拖动 dataZoom 组件导致窗口变化
  63. {
  64. // 这个dataZoom组件,默认控制x轴。
  65. type: "slider", // 这个 dataZoom 组件是 slider 型 dataZoom 组件
  66. xAxisIndex: 0,
  67. start: 10, // 左边在 10% 的位置。
  68. end: 60 // 右边在 60% 的位置。
  69. },
  70. // inside 实现用滚轮(或移动触屏上的两指滑动)进行缩放,
  71. {
  72. // 这个dataZoom组件,也控制x轴。
  73. type: "inside", // 这个 dataZoom 组件是 inside 型 dataZoom 组件
  74. xAxisIndex: 0,
  75. start: 10, // 左边在 10% 的位置。
  76. end: 60 // 右边在 60% 的位置。
  77. },
  78. // slider只能拖动 dataZoom 组件导致窗口变化
  79. {
  80. // 这个dataZoom组件,默认控制x轴。
  81. type: "slider", // 这个 dataZoom 组件是 slider 型 dataZoom 组件
  82. yAxisIndex: 0,
  83. start: 30,
  84. end: 80
  85. },
  86. // inside 实现用滚轮(或移动触屏上的两指滑动)进行缩放,
  87. {
  88. // 这个dataZoom组件,也控制x轴。
  89. type: "inside", // 这个 dataZoom 组件是 inside 型 dataZoom 组件
  90. yAxisIndex: 0,
  91. start: 30,
  92. end: 80
  93. }
  94. ]
  95. };
  96. // 使用这个配置,绘制图表
  97. myChart.setOption(option);
  98. },
  99. drawPieChart(id) {
  100. // 基于准备好的dom,初始化echarts实例
  101. var myChart1 = echarts.init(document.getElementById(id));
  102. let option = {
  103. series: [
  104. {
  105. name: "访问来源",
  106. type: "pie",
  107. radius: "55%",
  108. data: [
  109. {
  110. value: 235,
  111. name: "视频广告"
  112. // itemStyle: {
  113. // color: "#c23531"
  114. // }
  115. },
  116. { value: 274, name: "联盟广告" },
  117. { value: 310, name: "邮件营销" },
  118. { value: 335, name: "直接访问" },
  119. { value: 400, name: "搜索引擎" }
  120. ]
  121. }
  122. ],
  123. //阴影的配置
  124. itemStyle: {
  125. // 阴影的大小
  126. shadowBlur: 50,
  127. // 阴影水平方向上的偏移
  128. shadowOffsetX: 0,
  129. // 阴影垂直方向上的偏移
  130. shadowOffsetY: 0,
  131. // 阴影颜色
  132. shadowColor: "rgba(0, 0, 0, 0.6)",
  133. // 通过 emphasis 属性来定制高亮
  134. emphasis: {
  135. shadowBlur: 200,
  136. shadowColor: "rgba(0, 0, 0, 0.9)"
  137. }
  138. },
  139. //修改背景颜色
  140. backgroundColor: "#2c343c",
  141. // 设置文本样式
  142. textStyle: {
  143. // color: "rgba(255, 255, 255, 0.3)"
  144. },
  145. // 设置标签引导线
  146. labelLine: {
  147. lineStyle: {
  148. color: "rgba(255, 255, 255, 0.3)"
  149. }
  150. },
  151. itemStyle: {
  152. // 设置扇形的颜色
  153. color: "#c23531",
  154. shadowBlur: 200,
  155. shadowColor: "rgba(0, 0, 0, 0.5)"
  156. },
  157. visualMap: {
  158. // 不显示 visualMap 组件,只用于明暗度的映射
  159. show: false,
  160. // 映射的最小值为 80
  161. min: 80,
  162. // 映射的最大值为 600
  163. max: 600,
  164. inRange: {
  165. // 明暗度的范围是 0 到 1
  166. colorLightness: [0, 1]
  167. }
  168. }
  169. // 设置 roseType 显示饼图将成南丁格尔图
  170. // roseType: "angle"
  171. };
  172. myChart1.setOption(option);
  173. // click事件
  174. myChart1.on("click", function(params) {
  175. console.log("1==", params.name);
  176. window.open(
  177. "https://www.baidu.com/s?wd=" + encodeURIComponent(params.name)
  178. );
  179. });
  180. }
  181. }
  182. };
  183. </script>
  184. <style lang="less">
  185. .chart-wrapper {
  186. display: flex;
  187. #hisChart,
  188. #pieChart {
  189. width: 800px;
  190. height: 600px;
  191. background: rgb(228, 223, 218);
  192. margin-right: 20px;
  193. }
  194. }
  195. </style>

    参考:  echarts--option

     

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/215878
推荐阅读