一、样式设置
在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中进行了相关设置。
原创文章,作者:LVMG,如若转载,请注明出处:https://www.506064.com/n/138625.html
微信扫一扫
支付宝扫一扫