实现如图所示功能,
实现思路:象形图无法实现整块渐变,则先实现两个普通的渐变柱状图,然后再实现两个象形柱状图,背景色设置为白色(调试时若无法区分可加对应底色),定位象形柱状图在普通柱状图上面即可。
代码如下:
option = {
xAxis: {
type: 'category',
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
},
legend: {
data: ['Rainfall', 'Evaporation']
},
yAxis: {
type: 'value',
show:false,
},
series: [
{
type: 'bar',
itemStyle: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{ offset: 0, color: '#83bff6' },
{ offset: 0.5, color: '#188df0' },
{ offset: 1, color: '#188df0' }
])
},
barWidth:20,
data: [120, 200, 150, 80, 70, 110, 130],
},
{
type: 'bar',
itemStyle: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{ offset: 0, color: '#f4d6b5' },
{ offset: 0.5, color: '#c7945e' },
{ offset: 1, color: '#f79122' }
])
},
barWidth:20,
data: [180, 120, 160, 40, 70, 210, 160],
},
{
type: "pictorialBar", //设置类型为象形柱状图
symbol: "rect", //图形类型,带圆角的矩形
symbolMargin: "2", //图形垂直间隔
symbolRepeat: true, //图形是否重复
// 分隔
itemStyle: {
normal: {
color: "#fff",
},
},
symbolClip: true,
symbolSize: [20, 2],
symbolPosition: "start",
symbolOffset: [-12, -1],
data: [120, 200, 150, 80, 70, 110, 130],
z: 1,
zlevel: 2
},
{
type: "pictorialBar", //设置类型为象形柱状图
symbol: "rect", //图形类型,带圆角的矩形
symbolMargin: "2", //图形垂直间隔
symbolRepeat: true, //图形是否重复
// 分隔
itemStyle: {
normal: {
color: "#f6f6f6",
},
},
symbolClip: true,
symbolSize: [20, 2],
symbolPosition: "start",
symbolOffset: [12,0],
data: [180, 120, 160, 40, 70, 210, 160],
z: 1,
zlevel: 2
},
]
};