一、样式设置
在echarts中,柱状图图例的样式可以通过legend属性进行设置。其中,需要注意的是legend中的textStyle属性可以单独控制文字样式,同时color属性可以设置图例颜色。
legend: { textStyle: { fontStyle: 'italic', color: '#333', fontSize: 14 }, data: ['图例1', '图例2'], color: ['#ff0000', '#00ff00'] }
上述代码中,legend的textStyle指定了字体样式,颜色和字号。同时,data属性设置了图例的内容,color属性设置了图例对应的颜色。
二、数据格式
在echarts中,柱状图图例的数据格式可以灵活转换,可以是一维数组,也可以是多维数组,例如下方代码所示的数据格式:
var data = [{ name: '图例1', value: 100 }, { name: '图例2', value: 200 }]
以数据格式为基础,我们可以用不同的方式来呈现图例数据。例如,我们可以使用data内的value属性来作为柱状图高度的值:
{ xAxis: { data: ['图例1', '图例2'] }, yAxis: { type: 'value' }, series: [{ type: 'bar', data: [100, 200] }] }
三、图例位置
在echarts中,柱状图图例位置可以通过legend属性的orient属性进行控制。orient属性包含四个值可供选择,分别是'horizontal'(水平),'vertical'(垂直),'left'(左对齐),'center'(居中对齐),'right'(右对齐)。
legend: { orient: 'horizontal', //或:'vertical'、'left'、'center'、'right' data: ['图例1', '图例2'] }
上述代码中,orient属性设置为'horizontal',表示图例水平排列。
四、图例设置
在echarts中,我们可以通过legend属性控制图例的显示与隐藏,同时可以设置默认选中的图例。
legend: { selectedMode: 'single', //或多选'multiple' selected: { '图例1': true, //默认选中'图例1' '图例2': false //默认不选中'图例2' }, data: ['图例1', '图例2'] }
上述代码中,selectedMode属性设置为'single',表示图例单选。selected属性设置了默认选中的图例。
五、图例居右
在echarts中,我们可以通过grid属性配合legend属性实现图例居右的效果。
grid: { right: '20%', containLabel: true }, legend: { orient: 'vertical', right: 10, data: ['图例1', '图例2'] }
上述代码中,grid的right属性设置了图形区域离容器右侧的距离。同时,legend的右边距属性right也进行了设置。
六、柱状图类型
在echarts中,我们可以通过series属性的type属性,来切换柱状图的类型。默认柱状图的type属性值为'bar',我们可以将其修改为'stack',实现堆叠柱状图效果。
{ xAxis: { data: ['图例1'] }, yAxis: { type: 'value' }, series: [{ type: 'stack', //或'bar' data: [100], name: '图例1', stack: '总量' }, { type: 'stack', //或'bar' data: [50], name: '图例2', stack: '总量' }] }
七、图例太多怎么展示
当我们的柱状图图例太多时,可以使用legend属性的scroll属性进行滚动展示。
legend: { type: 'scroll', data: ['图例1', '图例2', '图例3', '图例4', '图例5', '图例6', '图例7', '图例8', '图例9', '图例10', '图例11', '图例12'] }
上述代码中,type属性设置为'scroll',表示使用滚动展示图例。data属性设置了所有需要展示的数据。
八、图例水平排列居右
我们可以使用legend属性的orient属性控制图例水平或垂直排列,但是当图例控制在一行显示时,我们可以使用justify属性将其居右显示。
legend: { type: 'scroll', orient: 'horizontal', data: ['图例1', '图例2', '图例3'], right: '30%', top: '80%', width: '40%', itemWidth: 20, itemHeight: 10, textStyle: { color: '#000' }, padding: [20, 5, 0, 5], selected: { '图例1': true, '图例2': true, '图例3': true }, align: 'right', justify: true }
上述代码中,itemWidth和itemHeight属性分别设置了图例样式的宽度和高度,padding属性设置了图例周围的边距。同时,align属性设置了图例在grid元素中的对齐方式,justify属性设置了图例水平排列时的对齐方式。
九、柱状图参数
在echarts中,通过柱状图的各个属性我们可以自由控制柱状图的样式,并且使用柱状图参数,可以实现更加灵活的数据展示方式。
{ xAxis: { type: 'category', data: ['图例1', '图例2', '图例3'], axisTick: { alignWithLabel: true } }, yAxis: { type: 'value' }, series: [{ type: 'bar', data: [100, 200, 300], barWidth: '60%', itemStyle: { normal: { color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{ offset: 0, color: '#83bff6' }, { offset: 0.5, color: '#188df0' }, { offset: 1, color: '#188df0' }]), barBorderRadius: [30, 30, 0, 0] } } }] }
上述代码中,barWidth属性设置了柱状图宽度。itemStyle属性设置了柱状图的颜色渐变和边角弧度效果,具体效果可以根据实际需求进行调整。使用LinearGradient函数可以控制颜色渐变的方向和阶段,分别对应四个参数(x1, y1, x2, y2)。barBorderRadius属性设置的是柱状图的边角弧度效果。
十、数据过多选取3~5个与echarts柱状图图例相关的做为小标题
当柱状图数据过多时,我们可以通过xAxis的axisLabel属性进行轴标签的间隔控制,同时也可以通过数据筛选的方式,选取关键数据展示。
以下数据为例,我们仅展示前5个关键数据。
var data = { category: ['2011', '2012', '2013', '2014', '2015', '2016', '2017', '2018', '2019', '2020'], series: [{ name: '图例1', type: 'bar', data: [100, 200, 300, 400, 500, 600, 700, 800, 900, 1000], barWidth: '20%' }, { name: '图例2', type: 'bar', data: [200, 400, 600, 800, 1000, 1200, 1400, 1600, 1800, 2000], barWidth: '20%' }] }; var option = { tooltip: {}, legend: { data: ['图例1', '图例2'] }, calculable: true, xAxis: [{ type: 'category', data: data.category.filter(function(value, index) { return index < 5; }), axisTick: { alignWithLabel: true } }], yAxis: [{ type: 'value' }], series: [{ name: '图例1', type: 'bar', data: data.series[0].data.filter(function(value, index) { return index < 5; }), barWidth: '20%' }, { name: '图例2', type: 'bar', data: data.series[1].data.filter(function(value, index) { return index < 5; }), barWidth: '20%' }] };
上述代码中,我们使用了filter方法筛选出前5个数据,并在xAxis和series中进行了相关设置。