echarts如何显示多个柱形图_使用echarts画多维柱状图

本文介绍了如何使用Echarts库创建多维柱状图,详细讲解了配置图表参数的过程,包括设置标题、菜单、x轴和y轴信息,以及自定义提示框和数据系列。通过示例代码展示了如何绘制不同级别的景区门票收入走势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

在此之前,已经跟大家分享了如何使用echarts画折线图、双折线图、柱状图,今天跟大家分享一下使用echarts画多维柱状图。

使用echarts遇到过的坑:

一定要给图表容器添加宽度与高度。

图表在容器中可以调整位置,让图表显示的更完整。

1.引入相关js

2.确定容器

3.定义画多维柱状图的方法,配置图表参数

/**

* 画多维柱状图

* @param container 容器

* @param titleName 标题名称

* @param legendData 菜单列表

* @param xData x轴数据

* @param seriesDatas 多维图表数据

*/

function drawManyBar(container, titleName, legendData, xData, seriesDatas) {

var ticket = echarts.init(document.getElementById(container));

ticketOption = {

//标题样式

title : {

text : titleName,

textStyle : {

color : 'white',

},

left : 'left'

},

//提示框

tooltip : {

trigger : 'axis',

backgroundColor : 'gray',

axisPointer : {

type : 'shadow'

},

//提示信息格式,支持html样式

formatter : function(params) {

var res = '

';

res += '' + params[0].name + '(万元)';

for ( var i = 0, l = params.length; i < l; i++) {

res += '
' + ((i == 4) ? '  ' : '')

+ params[i].seriesName + ' : '

+ params[i].value;

}

res += '

';

return res;

}

},

//菜单

legend : {

//菜单字体样式

textStyle : {

color : 'white'

},

//菜单位置

x : 'right',

//菜单数据

data : legendData

},

xAxis : [ {

type : 'category',

axisLine : {

show : true,

//x轴线样式

lineStyle : {

color : '#17273B',

width : 1,

type : 'solid',

}

},

//x轴字体设置

axisLabel : {

show : true,

fontSize : 12,

color : 'white'

},

data : xData

} ],

yAxis : [ {

type : 'value',

//y轴字体设置

axisLabel : {

show : true,

color : 'white',

fontSize : 12,

formatter : function(value) {

return value + '万';

}

},

//y轴线设置不显示

axisLine : {

show : false

},

//与x轴平行的线样式

splitLine : {

show : true,

lineStyle : {

color : '#17273B',

width : 1,

type : 'dashd',

}

}

} ],

series : [ {

name : '5A',

type : 'bar',

//柱子宽度

barWidth : 8,

//柱状图样式

itemStyle : {

color : 'red',

barBorderRadius : [ 30, 30, 0, 0 ]

},

data : seriesDatas[0]

}, {

name : '4A',

type : 'bar',

barWidth : 8,

itemStyle : {

color : 'orange',

barBorderRadius : [ 30, 30, 0, 0 ]

},

data : seriesDatas[1]

}, {

name : '3A',

type : 'bar',

barWidth : 8,

itemStyle : {

color : 'yellow',

barBorderRadius : [ 30, 30, 0, 0 ]

},

data : seriesDatas[2]

}, {

name : '2A',

type : 'bar',

barWidth : 8,

itemStyle : {

color : 'green',

barBorderRadius : [ 30, 30, 0, 0 ]

},

data : seriesDatas[3]

}, {

name : 'A',

type : 'bar',

barWidth : 8,

itemStyle : {

color : 'blue',

barBorderRadius : [ 30, 30, 0, 0 ]

},

data : seriesDatas[4]

} ]

};

ticket.setOption(ticketOption);

}

4.调用方法,传递参数

var titleName = '景区门票收入走势';

var legendData = [ '5A', '4A', '3A', '2A', 'A' ];

var xData = [ '一季度', '二季度', '三季度', '四季度' ];

var seriesDatas = [[ 83, 56, 77, 99 ], [ 62, 55, 67, 82 ], [ 71, 45, 62, 79 ], [ 78, 40, 58, 77 ], [ 76, 33, 52, 67 ]];

drawManyBar('manyBar', titleName, legendData, xData, seriesDatas);

5.划重点,方法说明

多维柱状图与单柱状图的区别在于,使用了多组数据。

提示框组件,可以根据需求自定义显示格式,在tooltip里面,加入formatter,支持html样式。

y轴是可以根据需要设置不同的单位的,比如万、K、毫升、C°等等,只需要在yAxis里面加入formatter,我这里使用的就是万。

与x轴平行的线,如果设置为true,但是width设置为0,该线是不显示的,设置为false则不受width值影响。

6.上图

961130cece9d?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

多维柱状图.png

961130cece9d?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

柱状图悬浮.png

推荐一款自己开发的小程序:心语一刻

心语一刻,心动一刻,这里有爱情表白、早安问候、晚安问候,也有励志格言,快来心动一下。

心语一刻可以实现你涂鸦、签名、选心语等操作,给你的朋友圈图片素材添彩。

心语一刻小程序码:

961130cece9d?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

love.jpg

### ECharts 多组柱状图实现方法 在 ECharts 中,可以通过配置 `series` 的多个实例来实现多组柱状图的效果。每组柱状图可以独立定义其数据源、样式以及其他属性。以下是具体的实现方式: #### 数据准备 为了绘制多组柱状图,通常需要提供一个多维数组作为数据源。每一列代表一组柱状图的数据[^1]。 ```javascript let dataGroup1 = [120, 200, 150, 80]; let dataGroup2 = [50, 70, 90, 130]; ``` #### 配置项说明 通过为每一个系列(Series)单独指定不同的名称和数据集,可以在同一图表上显示多组柱状图。以下是一个完整的示例代码片段: ```javascript option = { title: { text: '多组柱状图示例' }, tooltip: {}, legend: { // 图例组件用于展示不同分组的标签 data: ['组一', '组二'] }, xAxis: { type: 'category', data: ['类别A', '类别B', '类别C', '类别D'] // X轴分类名 }, yAxis: {}, // Y轴默认数值型 series: [ { name: '组一', // 系列名称对应到legend中的data字段 type: 'bar', // 设置图表类型为柱形图 data: dataGroup1, itemStyle: { color: '#ff7f50' // 自定义颜色 } }, { name: '组二', type: 'bar', data: dataGroup2, itemStyle: { color: function(params) { if (params.value === 0) { return 'transparent'; // 如果值为零,则返回透明色 } else { return '#87cefa'; } } } } ] }; ``` 上述代码展示了两个系列分别命名为“组一”和“组二”,并为其分配了各自的颜色方案以及数据集合。 #### 关于透明度处理 当某些情况下希望隐藏特定条件下的柱子时,可采用将这些柱体设为完全透明的方式达成效果。此逻辑已在第二个系列中体现出来——即对于任何等于零的数据点均赋予透明色彩。 --- ### 注意事项 - **X 轴与数据长度匹配**:确保每个 Series 下面的数据数量同 XAxis 定义好的类目数一致。 - **Legend 显示控制**:如果不想让某个序列出现在 Legend 列表里,可通过设置该序列对象内的 `showInLegend:false` 属性关闭它。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值