Vue项目中集成Echarts

r囧r小猫 2023-03-01 09:04 154阅读 0赞

Vue项目中集成Echarts

这里主要使用两个封装Echarts的库:

v-chartsVue-Echarts

v-charts

github地址

v-charts官网

使用

安装

  1. npm i v-charts echarts -S

结合Element一起使用

  1. <template>
  2. <div id="charts">
  3. <el-tabs v-model="activeName" @tab-click="handleClick">
  4. <el-tab-pane label="用户管理" name="first">
  5. <ve-Scatter :data="chartData"></ve-Scatter>
  6. </el-tab-pane>
  7. </el-tabs>
  8. </div>
  9. </template>
  10. <script>
  11. //按需引入
  12. import VeScatter from 'v-charts/lib/scatter.common'
  13. export default {
  14. components: { VeScatter },
  15. name: "charts",
  16. data () {
  17. return {
  18. chartData: {
  19. columns: ['日期', '访问用户', '下单用户', '年龄'],
  20. yAxisName:'demo',
  21. xAxisName:'demo',
  22. rows: [
  23. { '日期': '2020/1', '访问用户': 123, '年龄': 3, '下单用户': 1244 },
  24. { '日期': '2020/2', '访问用户': 1223, '年龄': 6, '下单用户': 2344 },
  25. { '日期': '2020/3', '访问用户': 7123, '年龄': 9, '下单用户': 3245 },
  26. { '日期': '2020/4', '访问用户': 4123, '年龄': 12, '下单用户': 4355 },
  27. { '日期': '2020/5', '访问用户': 3123, '年龄': 15, '下单用户': 4564 },
  28. { '日期': '2020/6', '访问用户': 2323, '年龄': 20, '下单用户': 6537 }
  29. ]
  30. },
  31. activeName: 'first'
  32. }
  33. },
  34. methods: {
  35. handleClick(tab, event) {
  36. console.log(tab, event);
  37. }
  38. }
  39. }
  40. </script>
  41. <style scoped>
  42. #charts{
  43. height: 300px;
  44. }
  45. </style>

效果

在这里插入图片描述

评价:

优点:

因为是饿了么团队出的,所以结合Element使用非常好,使用起来很简单

缺点:

(1)封装的图表类型有限

包含折线图、柱状图、条形图、饼图
环图、瀑布图、漏斗图、雷达图、地图、桑基图、热力图、散点图、K线图、仪表盘、树图、水球图等十几个类型,但关系图类型并没有封装,就需要使用Vue-ECharts

(2)官网配置不全

需要到Echarts中自行查询更详细的配置

Vue-ECharts

github地址

使用

安装

  1. npm install echarts vue-echarts

使用

全局注册:
  1. //main.js
  2. ...
  3. //全局引入
  4. import ECharts from 'vue-echarts'
  5. ...
  6. //注册全局组件
  7. Vue.component('v-chart', ECharts)
vue.config.js配置
  1. module.exports = {
  2. devServer: {
  3. open: true,
  4. port: 8878
  5. },
  6. transpileDependencies: [
  7. 'vue-echarts',
  8. 'resize-detector'
  9. ]
  10. }
组件中使用
  1. <template>
  2. <v-chart :options="polar"/>
  3. </template>
  4. <script>
  5. import ECharts from 'vue-echarts'
  6. //按需引入
  7. import 'echarts/lib/chart/graph'
  8. import 'echarts/lib/component/polar'
  9. export default {
  10. components: {
  11. 'v-chart': ECharts
  12. },
  13. name:"Graph",
  14. data () {
  15. return {
  16. //这里的配置是直接从Echarts中copy的
  17. polar: {
  18. title: {
  19. text: ''
  20. },
  21. tooltip: { },
  22. animationDurationUpdate: 1500,
  23. animationEasingUpdate: 'quinticInOut',
  24. label: {
  25. normal: {
  26. show: true,
  27. textStyle: {
  28. fontSize: 12
  29. },
  30. }
  31. },
  32. legend: {
  33. x: "center",
  34. show: false,
  35. data: ["1", "2", '3']
  36. },
  37. series: [
  38. {
  39. type: 'graph',
  40. layout: 'force',
  41. symbolSize: 45,
  42. focusNodeAdjacency: true,
  43. roam: true,
  44. categories: [{
  45. name: '1',
  46. itemStyle: {
  47. normal: {
  48. color: "#009800",
  49. }
  50. }
  51. }, {
  52. name: '2',
  53. itemStyle: {
  54. normal: {
  55. color: "#4592FF",
  56. }
  57. }
  58. }, {
  59. name: '3',
  60. itemStyle: {
  61. normal: {
  62. color: "#3592F",
  63. }
  64. }
  65. }],
  66. label: {
  67. normal: {
  68. show: true,
  69. textStyle: {
  70. fontSize: 12
  71. },
  72. }
  73. },
  74. force: {
  75. repulsion: 1000
  76. },
  77. edgeSymbolSize: [4, 50],
  78. edgeLabel: {
  79. normal: {
  80. show: true,
  81. textStyle: {
  82. fontSize: 10
  83. },
  84. formatter: "{c}"
  85. }
  86. },
  87. data: [{
  88. name: '节点0',
  89. draggable: true,
  90. }, {
  91. name: '节点1',
  92. category: 1,
  93. draggable: true,
  94. }, {
  95. name: '节点2',
  96. category: 1,
  97. draggable: true,
  98. }, {
  99. name: '节点3',
  100. category: 1,
  101. draggable: true,
  102. }, {
  103. name: '节点4',
  104. category: 1,
  105. draggable: true,
  106. }, {
  107. name: '节点5',
  108. category: 1,
  109. draggable: true,
  110. }, {
  111. name: '节点6',
  112. category: 1,
  113. draggable: true,
  114. }, {
  115. name: '节点7',
  116. category: 1,
  117. draggable: true,
  118. }, {
  119. name: '节点8',
  120. category: 1,
  121. draggable: true,
  122. }, {
  123. name: '节点9',
  124. category: 1,
  125. draggable: true,
  126. }, {
  127. name: '节点10',
  128. category: 1,
  129. draggable: true,
  130. }, {
  131. name: '节点11',
  132. category: 1,
  133. draggable: true,
  134. }, {
  135. name: '节点12',
  136. category: 1,
  137. draggable: true,
  138. }],
  139. links: [{
  140. source: 0,
  141. target: 1,
  142. category: 0,
  143. value: '0-1'
  144. }, {
  145. source: 0,
  146. target: 2,
  147. value: '0-2'
  148. }, {
  149. source: 0,
  150. target: 3,
  151. value: '0-3'
  152. }, {
  153. source: 0,
  154. target: 4,
  155. value: '0-4'
  156. }, {
  157. source: 1,
  158. target: 2,
  159. value: '1-2'
  160. }, {
  161. source: 0,
  162. target: 5,
  163. value: '0-5'
  164. }, {
  165. source: 4,
  166. target: 5,
  167. value: '4-5'
  168. }, {
  169. source: 2,
  170. target: 8,
  171. value: '2-8'
  172. }, {
  173. source: 0,
  174. target: 12,
  175. value: '0-12'
  176. }, {
  177. source: 6,
  178. target: 11,
  179. value: '6-11'
  180. }, {
  181. source: 6,
  182. target: 3,
  183. value: '6-3'
  184. }, {
  185. source: 7,
  186. target: 5,
  187. value: '7-5'
  188. }, {
  189. source: 9,
  190. target: 10,
  191. value: '9-10'
  192. }, {
  193. source: 3,
  194. target: 10,
  195. value: '3-10'
  196. }, {
  197. source: 2,
  198. target: 11,
  199. value: '2-11'
  200. }],
  201. lineStyle: {
  202. normal: {
  203. opacity: 0.9,
  204. width: 1,
  205. curveness: 0
  206. }
  207. }
  208. }
  209. ]
  210. }
  211. }
  212. }
  213. }
  214. </script>
  215. <style scoped>
  216. .echarts {
  217. width: 100%;
  218. height: 100%;
  219. }
  220. </style>

效果

在这里插入图片描述

评价

优点

可以使用Echarts中的任何组件,而且可以直接拷贝Echarts实例的代码使用

缺点

配置略为繁琐

发表评论

表情:
评论列表 (有 0 条评论,154人围观)

还没有评论,来说两句吧...

相关阅读