手把手教你用ECharts画柱状图
01 简单的柱状图
在ECharts中制作柱状图也十分简单,通过将series中的type设置为bar即可,代码如下
- option = {
- xAxis: {
- type: 'category',
- data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
- },
- yAxis: {
- type: 'value'
- },
- series: [{
- data: [100, 150, 120, 90, 50, 130, 110],
- type: 'bar'
- }]
- };
可视化结果如图4-8所示。
▲图4-8 简单的柱状图
我们同样可以在代码中添加label以显示具体数值,例如在每个柱子上显示对应数值,代码如下
- option = {
- xAxis: {
- type: 'category',
- data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
- },
- yAxis: {
- type: 'value'
- },
- series: [{
- data: [100, 150, 120, 90, 50, 130, 110],
- type: 'bar',
- label: {
- sho: true,
- position: ''
- },
- }]
- };
可视化结果如图4-9所示。
▲图4-9 简单的柱状图加入label
02 聚合柱状图
除了简单的柱状图,在实际场景中也会经常用到聚合柱状图,以更直观地比较各维度信息。例如,在原来的代码中加入legend,再加入一批数据,并将x轴的星期改为不同商场,代码如下
- option = {
- title: {
- text: '产品一周销量情况'
- },
- xAxis: {
- type: 'category',
- data: ['A商场', 'B商场', 'C商场', 'D商场', 'E商场', 'F商场', 'G商场']
- },
- yAxis: {
- type: 'value'
- },
- legend: {
- data: ['A产品', 'B产品']
- },
- series: [{
- name: 'A产品',
- data: [100, 150, 120, 90, 50, 130, 110],
- type: 'bar',
- label: {
- sho: true,
- position: ''
- }
- },
- {
- name: 'B产品',
- data: [120, 130, 110, 70, 60, 110, 140],
- type: 'bar',
- label: {
- sho: true,
- position: ''
- }
- }]
- };
可视化结果如图4-10所示。
结合图4-10,我们可以非常直观地比较不同商场的不同产品的销售情况。
▲图4-10 聚合柱状图
有时也会用到水平聚合柱状图,具体要如何实现呢?交换xAxis和yAxis中的内容,将数字label中的position由改为right即可,代码如下
- option = {
- title: {
- text: '产品一周销量情况'
- },
- xAxis: {
- type: 'value'
- },
- yAxis: {
- type: 'category',
- data: ['A商场', 'B商场', 'C商场', 'D商场', 'E商场', 'F商场', 'G商场']
- },
- legend: {
- data: ['A产品', 'B产品']
- },
- series: [{
- name: 'A产品',
- data: [100, 150, 120, 90, 50, 130, 110],
- type: 'bar',
- label: {
- sho: true,
- position: 'right'
- }
- },
- { name: 'B产品',
- data: [120, 130, 110, 70, 60, 110, 140],
- type: 'bar',
- label: {
- sho: true,
- position: 'right'
- }
- }]
- };
可视化结果如图4-11所示。
▲图4-11 水平聚合柱状图
03 堆叠柱状图
除上述几种柱状图,堆叠柱状图也是非常常用的。下面我们来制作一个不同产品在不同商场销量的堆叠柱状图,代码如下
- option = {
- tooltip: {
- trigger: 'axis',
- axisPointer: { type: 'shado'
- }
- },
- legend: {
- data: ['A商场', 'B商场', 'C商场', 'D商场', 'E商场']
- },
- xAxis: {
- type: 'value'
- },
- yAxis: {
- type: 'category',
- data: ['A产品', 'B产品', 'C产品', 'D产品', 'E产品', 'F产品', 'G产品']
- },
- series: [
- {
- name: 'A商场',
- type: 'bar',
- stack: '总量',
- label: {
- sho: true,
- position: 'inside'
- },
- data: [320, 302, 301, 334, 390, 330, 320]
- },
- {
- name: 'B商场',
- type: 'bar',
- stack: '总量',
- label: {
- sho: true,
- position: 'inside'
- },
- data: [320, 332, 301, 334, 490, 330, 310]
- },
- {
- name: 'C商场',
- type: 'bar', stack: '总量',
- label: {
- sho: true,
- position: 'inside'
- },
- data: [220, 182, 191, 234, 290, 330, 310]
- },
- {
- name: 'D商场',
- type: 'bar', stack: '总量',
- label: {
- sho: true,
- position: 'inside'
- },
- data: [150, 212, 201, 154, 190, 330, 410]
- },
- {
- name: 'E商场',
- type: 'bar',
- stack: '总量',
- label: {
- sho: true,
- position: 'inside'
- },
- data: [420, 532, 501, 234, 290, 330, 320]
- } ]
- };
可视化结果如图4-12所示。
▲图4-12 堆叠柱状图
在上述代码中,tooltip中的type为shado,所以当鼠标悬停在柱子上时,会显示阴影效果。这里的堆叠效果主要是通过stack参数决定的,当我们删除A商场的stack参数,并将B商场和C商场的stack参数改为“总量1”之后,其可视化结果如图4-13所示。所以可以这样理解stack参数相同的柱子会堆叠在一起,如果没有这个参数,则该部分不堆叠。
▲图4-13 堆叠柱状图调整堆叠效果
关于作者王大伟,毕业于华东理工大学,硕士学历,目前就职于平安金融壹账通,从事数据挖掘算法工作,擅长ECharts、Python、自然语言处理、数据分析挖掘、机器学习。曾获微软最有价值专家(MVP)荣誉称号。
本文摘编自《ECharts数据可视化入门、实战与进阶》,经出版方授权发布。
空调维修
- 温岭冰箱全国统一服务热线-全国统一人工【7X2
- 荆州速热热水器维修(荆州热水器维修)
- 昆山热水器故障码5ER-昆山热水器故障码26
- 温岭洗衣机24小时服务电话—(7X24小时)登记报
- 统帅热水器售后维修服务电话—— (7X24小时)登
- 阳江中央空调统一电话热线-阳江空调官方售后电
- 乌鲁木齐阳春燃气灶厂家服务热线
- 珠海许昌集成灶售后服务电话-全国统一人工【
- 乌鲁木齐中央空调维修服务专线-乌鲁木齐中央空
- 新沂热水器故障电话码维修-新沂热水器常见故障
- 诸城壁挂炉24小时服务热线电话
- 靖江空调24小时服务电话-——售后维修中心电话
- 空调室外滴水管维修(空调室外排水管维修)
- 九江壁挂炉400全国服务电话-(7X24小时)登记报修
- 热水器故障码f.22怎么解决-热水器f0故障解决方法
- 营口热水器售后维修服务电话—— 全国统一人工