描述:
设计给出的设计稿有一个图表需要横着向左显示,跟另一个图表对应。
效果图:
分析:
查阅echarts官方文档好像并没有相关的参数设置,但是设置负数会显示在负x轴,再用formatter转成正数显示即可。
option = {
title: {
text: '世界人口总量',
subtext: '数据来自网络'
},
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
}
},
legend: {
data: ['2011年', '2012年']
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
xAxis: {
type: 'value',
boundaryGap: [0, 0.01],
//x轴坐标数字显示正数
axisLabel: {
formatter(params) {
return -params;
}
}
},
yAxis: {
type: 'category',
//y轴显示在右侧
position: 'right',
data: ['巴西', '印尼', '美国', '印度', '中国', '世界', '日本', '韩国', '希腊'],
},
tooltip: {
//鼠标经过tooltip显示正数,params.marker为默认的小圆点
formatter(params) {
return params.name + "<br/>" + params.marker + params.seriesName + " <b>" + (-params.data) + "</b>"
}
},
series: [
{
name: '2011年',
type: 'bar',
//数据转成负数显示在-x轴,显示时去掉负号
data: [-10, -20, -30, -40, -50, -60, -70, -80, -90],
//颜色渐变
itemStyle: {
color: new echarts.graphic.LinearGradient(
0, 0, 1, 0,
[
{ offset: 0, color: '#38e599' },
{ offset: 1, color: '#1ec37a' }
]
)
},
}
]
}
如果有更好的办法,欢迎指出。
更新,其实很简单,设置xAxis
为反向坐标轴即可inverse:true
const data = [2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021,2022]
const arr= [...data].reverse()
option = {
title: {
text: '世界人口总量',
subtext: '数据来自网络'
},
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
}
},
legend: {
data: ['2011年']
},
xAxis: {
type: 'value',
inverse:true,
boundaryGap: [0, 0.01],
min:2012,
max:2022,
// x轴无需翻转
axisLabel: {
formatter(params,i) {
return arr[i];
}
}
},
yAxis: {
type: 'category',
// position:'right',
axisLine:{
show:false
},
axisTick:{
show:false
},
data: ['巴西', '印尼', '美国', '印度', '中国', '世界', '日本', '韩国', '希腊','俄罗斯'],
},
series: [
{
name: '2011年',
type: 'bar',
data,
//颜色渐变
itemStyle: {
color: new echarts.graphic.LinearGradient(
0, 0, 1, 0,
[
{ offset: 0, color: '#38e599' },
{ offset: 1, color: '#1ec37a' }
]
)
},
}
]
}