飞道的博客

vue使用ecahrts词云图

428人阅读  评论(0)

echarts词云图是echarts的一个扩展

https://echarts.apache.org/zh/download-extension.html


1.安装依赖


  
  1.  npm install echarts
  2.  npm install echarts-wordcloud


2.main.js引入


  
  1. import echarts from 'echarts';
  2. Vue.prototype.$echarts = echarts


3.在用到的组件中引入扩展


  
  1. <script>
  2. import "echarts-wordcloud/dist/echarts-wordcloud";
  3. import "echarts-wordcloud/dist/echarts-wordcloud.min"
  4. </script>

4.配置


  
  1. <template>
  2. <div class="result">
  3. <el-tabs type="border-card" v-model="name">
  4. <el-tab-pane label="各省累计确诊" name="0">
  5. <div ref="chart1" style="width: 800px;height:600px;"> </div>
  6. </el-tab-pane>
  7. <el-tab-pane label="各省现有确诊" name="1">
  8. <div ref="chart2" style="width: 800px;height:600px;" class="charts-two"> </div>
  9. </el-tab-pane>
  10. <el-tab-pane label="各市累计确诊" name="2">
  11. <div ref="chart3" style="width: 800px;height:600px;"> </div>
  12. </el-tab-pane>
  13. <el-tab-pane label="各市现有确诊" name="3">
  14. <div ref="chart4" style="width: 800px;height:600px;"> </div>
  15. </el-tab-pane>
  16. </el-tabs>
  17. </div>
  18. </template>
  19. // 词云图
  20. <script>
  21. import * as echarts from "echarts";
  22. import "echarts-wordcloud/dist/echarts-wordcloud";
  23. import "echarts-wordcloud/dist/echarts-wordcloud.min";
  24. export default {
  25. name: "VisitShow",
  26. data() {
  27. return {
  28. userVisitNum: [],
  29. date: [],
  30. goodVisitNum: [],
  31. goodsName: [],
  32. name: "0",
  33. };
  34. },
  35. mounted() {
  36. this.showEeharts();
  37. },
  38. methods: {
  39. showEeharts() {
  40. var chart1 = echarts.init( this.$refs.chart1);
  41. var chart2 = echarts.init( this.$refs.chart2);
  42. var chart3 = echarts.init( this.$refs.chart3);
  43. var chart4 = echarts.init( this.$refs.chart4);
  44. var data1 = [
  45. { 'name': '香港', 'value': 11801},
  46. { 'name': '台湾', 'value': 1178},
  47. { 'name': '上海', 'value': 2006},
  48. { 'name': '广东', 'value': 2365},
  49. { 'name': '云南', 'value': 347},
  50. { 'name': '四川', 'value': 992},
  51. { 'name': '福建', 'value': 595},
  52. { 'name': '浙江', 'value': 1345},
  53. { 'name': '海南', 'value': 188},
  54. { 'name': '江苏', 'value': 720},
  55. { 'name': '天津', 'value': 387},
  56. { 'name': '山西', 'value': 251},
  57. { 'name': '广西', 'value': 275},
  58. { 'name': '陕西', 'value': 592},
  59. { 'name': '湖北', 'value': 38158},
  60. { 'name': '重庆', 'value': 597},
  61. { 'name': '内蒙古', 'value': 382},
  62. { 'name': '湖南', 'value': 1045},
  63. { 'name': '山东', 'value': 879},
  64. { 'name': '北京', 'value': 1057},
  65. { 'name': '河南', 'value': 1312},
  66. { 'name': '甘肃', 'value': 193},
  67. { 'name': '西藏', 'value': 1},
  68. { 'name': '吉林', 'value': 573},
  69. { 'name': '河北', 'value': 1317},
  70. { 'name': '青海', 'value': 18},
  71. { 'name': '澳门', 'value': 49},
  72. { 'name': '新疆', 'value': 980},
  73. { 'name': '辽宁', 'value': 408},
  74. { 'name': '安徽', 'value': 994},
  75. { 'name': '黑龙江', 'value': 1610},
  76. { 'name': '贵州', 'value': 147},
  77. { 'name': '江西', 'value': 937},
  78. { 'name': '宁夏', 'value': 75}
  79. ]
  80. var data2 = [
  81. { 'name': '香港', 'value': 118},
  82. { 'name': '台湾', 'value': 89},
  83. { 'name': '上海', 'value': 56},
  84. { 'name': '广东', 'value': 51},
  85. { 'name': '云南', 'value': 46},
  86. { 'name': '四川', 'value': 30},
  87. { 'name': '福建', 'value': 25},
  88. { 'name': '浙江', 'value': 22},
  89. { 'name': '海南', 'value': 17},
  90. { 'name': '江苏', 'value': 8},
  91. { 'name': '天津', 'value': 7},
  92. { 'name': '山西', 'value': 7},
  93. { 'name': '广西', 'value': 7},
  94. { 'name': '陕西', 'value': 6},
  95. { 'name': '湖北', 'value': 6},
  96. { 'name': '重庆', 'value': 6},
  97. { 'name': '内蒙古', 'value': 4},
  98. { 'name': '湖南', 'value': 4},
  99. { 'name': '山东', 'value': 3},
  100. { 'name': '北京', 'value': 2},
  101. { 'name': '河南', 'value': 1},
  102. { 'name': '甘肃', 'value': 1},
  103. { 'name': '西藏', 'value': 0},
  104. { 'name': '吉林', 'value': 0},
  105. { 'name': '河北', 'value': 0},
  106. { 'name': '青海', 'value': 0},
  107. { 'name': '澳门', 'value': 0},
  108. { 'name': '新疆', 'value': 10},
  109. { 'name': '辽宁', 'value': 0},
  110. { 'name': '安徽', 'value': 0},
  111. { 'name': '黑龙江', 'value': 0},
  112. { 'name': '贵州', 'value': 0},
  113. { 'name': '江西', 'value': 0},
  114. { 'name': '宁夏', 'value': 0}
  115. ]
  116. var data3 = [
  117. { 'name': '香港', 'value': 11801},
  118. { 'name': '台湾', 'value': 1178},
  119. { 'name': '上海', 'value': 2006},
  120. { 'name': '广东', 'value': 2365},
  121. { 'name': '云南', 'value': 347},
  122. { 'name': '四川', 'value': 992},
  123. { 'name': '福建', 'value': 595},
  124. { 'name': '浙江', 'value': 1345},
  125. { 'name': '海南', 'value': 188},
  126. { 'name': '江苏', 'value': 720},
  127. { 'name': '天津', 'value': 387},
  128. { 'name': '山西', 'value': 251},
  129. { 'name': '广西', 'value': 275},
  130. { 'name': '陕西', 'value': 592},
  131. { 'name': '湖北', 'value': 38158},
  132. { 'name': '重庆', 'value': 597},
  133. { 'name': '内蒙古', 'value': 382},
  134. { 'name': '湖南', 'value': 1045},
  135. { 'name': '山东', 'value': 879},
  136. { 'name': '北京', 'value': 1057},
  137. { 'name': '河南', 'value': 1312},
  138. { 'name': '甘肃', 'value': 193},
  139. { 'name': '西藏', 'value': 1},
  140. { 'name': '吉林', 'value': 573},
  141. { 'name': '河北', 'value': 1317},
  142. { 'name': '青海', 'value': 18},
  143. { 'name': '澳门', 'value': 49},
  144. { 'name': '新疆', 'value': 980},
  145. { 'name': '辽宁', 'value': 408},
  146. { 'name': '安徽', 'value': 994},
  147. { 'name': '黑龙江', 'value': 1610},
  148. { 'name': '贵州', 'value': 147},
  149. { 'name': '江西', 'value': 937},
  150. { 'name': '宁夏', 'value': 75}
  151. ]
  152. var data4 = [
  153. { 'name': '香港', 'value': 118},
  154. { 'name': '台湾', 'value': 89},
  155. { 'name': '上海', 'value': 56},
  156. { 'name': '广东', 'value': 51},
  157. { 'name': '云南', 'value': 46},
  158. { 'name': '四川', 'value': 30},
  159. { 'name': '福建', 'value': 25},
  160. { 'name': '浙江', 'value': 22},
  161. { 'name': '海南', 'value': 17},
  162. { 'name': '江苏', 'value': 8},
  163. { 'name': '天津', 'value': 7},
  164. { 'name': '山西', 'value': 7},
  165. { 'name': '广西', 'value': 7},
  166. { 'name': '陕西', 'value': 6},
  167. { 'name': '湖北', 'value': 6},
  168. { 'name': '重庆', 'value': 6},
  169. { 'name': '内蒙古', 'value': 4},
  170. { 'name': '湖南', 'value': 4},
  171. { 'name': '山东', 'value': 3},
  172. { 'name': '北京', 'value': 2},
  173. { 'name': '河南', 'value': 1},
  174. { 'name': '甘肃', 'value': 1},
  175. { 'name': '西藏', 'value': 0},
  176. { 'name': '吉林', 'value': 0},
  177. { 'name': '河北', 'value': 0},
  178. { 'name': '青海', 'value': 0},
  179. { 'name': '澳门', 'value': 0},
  180. { 'name': '新疆', 'value': 10},
  181. { 'name': '辽宁', 'value': 0},
  182. { 'name': '安徽', 'value': 0},
  183. { 'name': '黑龙江', 'value': 0},
  184. { 'name': '贵州', 'value': 0},
  185. { 'name': '江西', 'value': 0},
  186. { 'name': '宁夏', 'value': 0}
  187. ]
  188. var chart1Option = {
  189. title: {
  190. text: '各省累计确诊-词云', //标题
  191. x: 'center',
  192. textStyle: {
  193. fontSize: 23
  194. }
  195. },
  196. backgroundColor: '#fff', //F7F7F7
  197. tooltip: {
  198. show: true
  199. },
  200. series: [{
  201. name: '各省累计确诊', //数据提示窗标题
  202. type: 'wordCloud',
  203. sizeRange: [ 12, 64], //画布范围,如果设置太大会出现少词(溢出屏幕)
  204. rotationRange: [ -45, 90], //数据翻转范围
  205. //shape: 'circle',
  206. textPadding: 0,
  207. autoSize: {
  208. enable: true,
  209. minSize: 6
  210. },
  211. textStyle: {
  212. normal: {
  213. color: function() {
  214. return 'rgb(' + [
  215. Math.round( Math.random() * 160),
  216. Math.round( Math.random() * 160),
  217. Math.round( Math.random() * 160)
  218. ].join( ',') + ')';
  219. }
  220. },
  221. emphasis: {
  222. shadowBlur: 10,
  223. shadowColor: '#333'
  224. }
  225. },
  226. data: data1,
  227. }]
  228. };
  229. var chart2Option = {
  230. title: {
  231. text: '各省现有确诊-词云', //标题
  232. x: 'center',
  233. textStyle: {
  234. fontSize: 23
  235. }
  236. },
  237. backgroundColor: '#fff',
  238. tooltip: {
  239. show: true
  240. },
  241. series: [{
  242. name: '各省现有确诊', //数据提示窗标题
  243. type: 'wordCloud',
  244. sizeRange: [ 12, 64], //画布范围,如果设置太大会出现少词(溢出屏幕)
  245. rotationRange: [ -45, 90], //数据翻转范围
  246. //shape: 'circle',
  247. textPadding: 0,
  248. autoSize: {
  249. enable: true,
  250. minSize: 6
  251. },
  252. textStyle: {
  253. normal: {
  254. color: function() {
  255. return 'rgb(' + [
  256. Math.round( Math.random() * 160),
  257. Math.round( Math.random() * 160),
  258. Math.round( Math.random() * 160)
  259. ].join( ',') + ')';
  260. }
  261. },
  262. emphasis: {
  263. shadowBlur: 10,
  264. shadowColor: '#333'
  265. }
  266. },
  267. data: data2,
  268. }]
  269. };
  270. var chart3Option = {
  271. title: {
  272. text: '各市累计确诊-词云', //标题
  273. x: 'center',
  274. textStyle: {
  275. fontSize: 23
  276. }
  277. },
  278. backgroundColor: '#fff',
  279. tooltip: {
  280. show: true
  281. },
  282. series: [{
  283. name: '各市累计确诊', //数据提示窗标题
  284. type: 'wordCloud',
  285. sizeRange: [ 12, 64], //画布范围,如果设置太大会出现少词(溢出屏幕)
  286. rotationRange: [ -45, 90], //数据翻转范围
  287. //shape: 'circle',
  288. textPadding: 0,
  289. autoSize: {
  290. enable: true,
  291. minSize: 6
  292. },
  293. textStyle: {
  294. normal: {
  295. color: function() {
  296. console.log( 'rgb(' + [
  297. Math.round( Math.random() * 160),
  298. Math.round( Math.random() * 160),
  299. Math.round( Math.random() * 160)
  300. ].join( ',') + ')')
  301. return 'rgb(' + [
  302. Math.round( Math.random() * 160),
  303. Math.round( Math.random() * 160),
  304. Math.round( Math.random() * 160)
  305. ].join( ',') + ')';
  306. }
  307. },
  308. emphasis: {
  309. shadowBlur: 10,
  310. shadowColor: '#333'
  311. }
  312. },
  313. data: data3,
  314. }]
  315. };
  316. var chart4Option = {
  317. title: {
  318. text: '各市现有确诊-词云', //标题
  319. x: 'center',
  320. textStyle: {
  321. fontSize: 23
  322. }
  323. },
  324. backgroundColor: '#fff',
  325. tooltip: {
  326. show: true
  327. },
  328. series: [{
  329. name: '各市现有确诊', //数据提示窗标题
  330. type: 'wordCloud',
  331. sizeRange: [ 12, 64], //画布范围,如果设置太大会出现少词(溢出屏幕)
  332. rotationRange: [ -45, 90], //数据翻转范围
  333. //shape: 'circle',
  334. textPadding: 0,
  335. autoSize: {
  336. enable: true,
  337. minSize: 6
  338. },
  339. textStyle: {
  340. normal: {
  341. color: function() {
  342. console.log( 'rgb(' + [
  343. Math.round( Math.random() * 160),
  344. Math.round( Math.random() * 160),
  345. Math.round( Math.random() * 160)
  346. ].join( ',') + ')')
  347. return 'rgb(' + [
  348. Math.round( Math.random() * 160),
  349. Math.round( Math.random() * 160),
  350. Math.round( Math.random() * 160)
  351. ].join( ',') + ')';
  352. }
  353. },
  354. emphasis: {
  355. shadowBlur: 10,
  356. shadowColor: '#333'
  357. }
  358. },
  359. data: data4,
  360. }]
  361. };
  362. chart1.setOption(chart1Option);
  363. chart2.setOption(chart2Option);
  364. chart3.setOption(chart3Option);
  365. chart4.setOption(chart4Option);
  366. },
  367. },
  368. };
  369. </script>
  370. <style lang="less">
  371. </style>


5.完成图

 


转载:https://blog.csdn.net/qq_38316655/article/details/116595572
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场