当前位置:   article > 正文

【echarts画数据可视化大屏】_echarts 大屏

echarts 大屏

目录

前言

一、数据清洗

1.去除重复值

2.处理缺失值

3.处理异常值

二、数据处理(将数据打包成绘制需要的格式)

1.条形图数据处理

2.折线图数据处理

3.玫瑰图数据处理

4.柱状图数据处理

5.词云图数据处理

6.饼图数据处理

三、绘制小图

1.轮播条形图

2.折线图

3.玫瑰图

4.柱状图

5.词云图

6.饼图

四、合并大屏

 五、大屏展示


前言

当今社会,数据已经成为了我们最重要的资产之一。每一个领域都有着大量的数据,而对于企业来说,如何更好地利用这些数据就显得尤为关键。数据可视化是将数据转化为图形的过程,使得数据的本质更加清晰、易于理解。数据可视化大屏就是一个将数据可视化展示在大屏幕上的工具,可以帮助企业快速掌握数据的状态和趋势,更好地进行决策。

本次数据可视化大屏数据来自数据分析:10个领域的70+数据集,你都知道嘛? - 知乎 (zhihu.com)

一、数据清洗

1.去除重复值

本次所需的数据来着两个表,因为过程大差不差,所以只展示一个表格的清洗过程。

导入数据表格:

  使用序列对象的内置方法--drop_duplicates()来进行重复值处理,其中drop_duplicates()方法的参数即用法:

1)subset:当重对象是表格对象时使用,用来指定去重依据的字段

2)keep:指定去重后保留的行,first表示第一行,last表示最后一行

3)inplace:表示是否对原始数据生效(是否保留在原表)

具体代码如下:

2.处理缺失值

思路:用表格对象,isnull().sum()方法查看每列缺失值的数量,用dropna()方法将缺失值删除

3.处理异常值

画箱线图找出异常值

 然后将异常值删除并索引重置保存到原表中,最后将清洗好的表格导出

二、数据处理(将数据打包成绘制需要的格式)

在使用 Echarts 进行数据可视化的开发中,数据处理是非常重要的环节。我们需要将不同的数据源整理成 Echarts 所要求的数据格式,才能将其绘制出来。

1.条形图数据处理

由于现在数据表中update_time列不是时间对象,所以要先转换成时间对象后再进行数据处理,用pd.to_datetime()方法进行转换并在表格中新建一列date存放,代码如下:

 筛选出2016年11月11日的数据并按店名分组对comment_count列求和,分组用到的方法是groupby(by="字段名")。将分组求和出来的数据按店名,评论数存到一个字典对象中

2.折线图数据处理

3.玫瑰图数据处理

4.柱状图数据处理

5.词云图数据处理

用jieba对标题列进行分词分词性后统计名词出现的次数后打包成字典格式

6.饼图数据处理

将价格分箱后对每个区间的频数统计

三、绘制小图

1.轮播条形图

条形图是在柱状图的基础上把x轴和y轴的类型和数据交换

设置轮播显示的核心代码是在dataZoom配置项中

yAxisIndex: 0    //从y轴的0刻度开始

startValue: 0      // 从头开始

endValue: 7        // 一次性展示9个

设置autoMove ()函数,来轮流播放

  1. //轮播条形图,201611-11日每个店铺的评论总数
  2. var left1Chart = echarts.init(document.querySelector(".left1 .chart"));
  3. var left1Option = {
  4. //color: ["#2f89cf"],
  5. tooltip: {
  6. // 通过坐标轴来触发
  7. trigger: 'axis',
  8. axisPointer: {
  9. type: "shadow"
  10. }
  11. },
  12. legend: {
  13. right: "40%",
  14. // 修饰图例文字的颜色
  15. textStyle: {
  16. color: "rgba(255,255,255,.7)"
  17. }
  18. },
  19. grid: {
  20. left: "0%",
  21. top: "10px",
  22. right: "0%",
  23. bottom: "4%",
  24. containLabel: true
  25. },
  26. xAxis:{
  27. type: 'value',
  28. name: '评论总数',
  29. position: 'top', //x轴位置
  30. axisTick: {
  31. show: false
  32. },
  33. axisLabel: { // 坐标轴标签
  34. show: true,
  35. fontSize: 12,
  36. fontFamily: 'Source Han Sans CN',
  37. fontWeight: 400,
  38. color: '#70EEFE',
  39. },
  40. axisLine: { // 坐标轴线设置
  41. show: false,
  42. lineStyle:{
  43. color:'#FFFFFF',
  44. },
  45. },
  46. splitLine: { // 分割线
  47. lineStyle: {
  48. color: '#0099FF',
  49. type: 'dashed',
  50. }
  51. },
  52. axisLabel: { // 改变x轴字体颜色和大小
  53. textStyle: {
  54. //color: "#33CCFF",
  55. fontSize: 10
  56. }
  57. }
  58. },
  59. yAxis:{
  60. type: 'category',
  61. //name: '店名',
  62. textStyle:{
  63. fontSize:10
  64. },
  65. axisLine: { // 坐标轴线
  66. show: false,
  67. lineStyle:{
  68. color:'#FFFFFF',
  69. },
  70. },
  71. axisTick: { // 坐标轴刻度
  72. show: false
  73. },
  74. axisLabel:{
  75. //interval: 0, //显示所有标签
  76. fontSize: 10, //标签大小
  77. //color: "#FFFFFF" , //设置标签颜色
  78. },
  79. data: ["佰草集", "倩碧", "兰芝", "兰蔻", "妮维雅", "娇兰", "悦诗风吟", "欧珀莱", "欧莱雅", "相宜本草", "美加净", "美宝莲", "自然堂", "薇姿", "蜜丝佛陀", "资生堂", "雅漾", "雅诗兰黛", "雪花秀"],
  80. },
  81. dataZoom: [
  82. //滑动条
  83. {
  84. yAxisIndex: 0, //从y轴的0刻度开始
  85. show: false, //是否显示滑动条
  86. type: "slider", // 这个 dataZoom 组件是 slider 型 dataZoom 组件
  87. startValue: 0, // 从头开始。
  88. endValue: 7, // 一次性展示9个。
  89. },
  90. ],
  91. series:[
  92. {
  93. type: 'bar',
  94. itemStyle: {
  95. borderColor: '#157DFE',
  96. borderWidth: 1,
  97. barBorderRadius: 30, //设置成圆角
  98. color: new echarts.graphic.LinearGradient(
  99. 1, 1, 0, 0, [{
  100. offset: 1,
  101. color: `#FFFFFF`
  102. }, {
  103. offset: 0,
  104. color: `#3399FF`
  105. }
  106. ]
  107. ),
  108. },
  109. label: {
  110. normal: {
  111. show: true,
  112. position: 'right',
  113. formatter: '{c}条',
  114. color: '#3399FF',
  115. fontSize: '10',
  116. }
  117. },
  118. data: [115615.0, 73301.0, 74104.0, 29173.0, 366445.0, 1700.0, 573201.0, 41262.0, 216656.0, 188838.0, 72142.0, 291430.0, 191807.0, 20522.0, 74672.0, 2319.0, 108427.0, 57418.0, 4171.0],
  119. }
  120. ]
  121. };
  122. left1Chart.setOption(left1Option);
  123. autoMove()
  124. function autoMove () {
  125. // 自动滚动:
  126. timeOut=setInterval(()=>{
  127. if (left1Option.dataZoom[0].endValue == 18 ) {
  128. left1Option.dataZoom[0].endValue = 7;
  129. left1Option.dataZoom[0].startValue = 0;
  130. } else {
  131. left1Option.dataZoom[0].endValue = left1Option.dataZoom[0].endValue + 1;
  132. left1Option.dataZoom[0].startValue = left1Option.dataZoom[0].startValue + 1;
  133. }
  134. left1Chart.setOption(left1Option);
  135. left1Chart.on('mouseover',stop)
  136. left1Chart.on('mouseout',goMove)
  137. },2000)
  138. }
  139. //停止滚动
  140. function stop(){
  141. clearInterval(timeOut)
  142. }
  143. //继续滚动
  144. function goMove(){
  145. autoMove()
  146. }

2.折线图

设置多个折线图时可以在series配置项中添加数据

  1. //折线图
  2. var left2Chart = echarts.init(document.querySelector(".left2 .chart"));
  3. var left2Option = {
  4. tooltip: {
  5. // 通过坐标轴来触发
  6. trigger: "axis"
  7. },
  8. legend: {
  9. show: true,
  10. top: '2%',
  11. icon: "roundRect",
  12. itemWidth: 30, // 图例标记的图形宽度。
  13. itemHeight: 2, // 图例标记的图形高度。
  14. textStyle: {
  15. color: 'break',
  16. fontSize: 11,
  17. padding: [0, 8, 0, 8]
  18. }
  19. },
  20. grid: {
  21. top: "30%",
  22. left: "0%",
  23. right: "2%",
  24. bottom: "0%",
  25. show: true,
  26. borderColor: "#012f4a",
  27. containLabel: true
  28. },
  29. xAxis: {
  30. type: "category",
  31. boundaryGap: false,
  32. smooth: true, //平滑的曲线
  33. data: ["11-05","11-06","11-07", "11-08","11-09","11-10","11-11","11-12","11-13","11-14"],
  34. // 去除刻度
  35. axisTick: {
  36. show: false
  37. },
  38. // 修饰刻度标签的颜色
  39. axisLabel: {
  40. color: "rgba(255,255,255,.7)",
  41. interval: 0, //显示所有标签
  42. fontSize: 8, //标签大小
  43. },
  44. // 去除x坐标轴的颜色
  45. axisLine: {
  46. show: false,
  47. lineStyle:{
  48. color:'#FFFFFF',
  49. },
  50. }
  51. },
  52. yAxis: {
  53. type: "value",
  54. // 去除刻度
  55. axisTick: {
  56. show: false
  57. },
  58. // 修饰刻度标签的颜色
  59. axisLabel: {
  60. color: "rgba(255,255,255,.7)"
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Guff_9hys/article/detail/769620
推荐阅读
相关标签
  

闽ICP备14008679号