涨幅
配置项如下
let _data = [-10, -9, -8, -7, -6, -5, -4, -3, -2, 5];
let trueData = _data.map((v) => Math.abs(v));
// 红的
let imgUp =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAexJREFUWEftlj9IG1Ecx7+/y1FBxcEjCQqC3t3kYGkuIDqIDh2cGhBxEsFFcNDN1XZ0KJRCl0JBnKRDN1F00EWKmD9QsVC400GJ3AMXB8Wo+ZVCFAm55L0LNIO59b6/7/fzvu8e7wgNfqjefLbtFnLd27A+dQEIxzoFYBDzx2j25EMYiNAApfDex1BmnohnT36oQoQCEI75HaDJ52EE5ItcHI9nT3+pQCgD+I75hUDzlUKIcQjWU9Hcn7wshBKASJqzYPpWzZzB24VXhVTPz/MbGQhpAP9N32to2g4BUQnjtVjGm5HQQQpA9Pe3o7WwAeYRGdOSZjGW8T7X0ssBONYqAKkVPQu80QlvO9PefjWImgB+wnxPRMu1VhLwPhfR8M449M6C5qsCiIQ1BcJ6yPDSGO3c4zrVnclfVzw5QeZ+om9AI22Tge76AAAmfI2nvTklAOFYuwBG6w1/nI/o1GMcuOflfoFbIBx7ksCfQjawVxZ0FMt4C0oNVBJfJO3RCPMWgJagZh6IxrrSbjlAYJE1T0H5pHAsD4DZSICq38b/aKAJ0Gyg2UCzgRfegJ+wVoiw1LC7wE/a08S8FnC1Hms6DRsH7pXsf4TybXg5aHfc32EI4AGA256CSBN6EXtGzv0tG/5PpwygYi6j/QuNY80hJ6JoYwAAAABJRU5ErkJggg==';
// 绿的
let imgDown =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAetJREFUWEftlTFo1GAUx/8vtLVFWkdHLRaUJgfCgZe2OLSgFAqCooKbLi7ieg4mdxe+tNCOIoKTjqUFETt0EKHQwS/oIDSpS4dOdq443ND7nuTKLcddLl/uzjpc1rz3//++f973Qjjjh3T954pXx0/ODS0R07Xm3mFVe7u78vNIR1MbwHat7wDyrU34vRTRk34DcHsDPpQimjxDAECKUCtVreL4ZLZrJSQwABgkMEhgkMB/kMCo8Wdsxzuspl3HWpuwUJ6aIDV6nCTOBpuBF+33BcB2px8DxrtkcVqTYu9F1wAFx9wgogdphRLrGBXph16rmrafwHatAwBXegHAzJuBHz3UApgpWXeZ8aEnAOBHgYjWtQBOf725VYCL3UAQ6PlXsfe6nUbiLcg/zQ+PXKx+YdDNTBAMT/phJam34zWcLU9fV8r4COCSJsSWFOGdTj0dAWKBG465YBDFEOOdBE/f0y821K00+yAVQCxZcMz7RLSZBoAThq65PzVAfShLlg/Gy8RNCH4WiOhNGtB6VmkLG3W2m9sGeLFlH8ORfriso6kNMOPmcgz1CaDLTUafpQhv65hnSiBumnXMBUW0DWCkYchG9ULgHfz+JwD1eXCseyC8YuC8qqn5byv7P3TNMyeQxSjTJuylUTutv8R3siHwOq4+AAAAAElFTkSuQmCC';
const colors = [
'#377D2C',
'#CCCCCC',
'#CCCCCC',
'#CCCCCC',
'#CCCCCC',
'#CCCCCC',
'#CCCCCC',
'#F7CA75',
'#F7CA75',
'#F7CA75',
];
option = {
backgroundColor: '#fff',
tooltip: {
trigger: 'axis',
show: true,
axisPointer: {
// 坐标轴指示器,坐标轴触发有效
type: 'shadow', // 默认为直线,可选为:'line' | 'shadow'
},
formatter: function (parmas, i) {
return _data[parmas[0].dataIndex] > 0
? parmas[0].name + ' : ' + parmas[0].value
: parmas[0].name + ' : -' + parmas[0].value;
},
},
legend: {
show: false,
},
grid: {
left: '-10%',
right: '10%',
bottom: '3%',
containLabel: true,
},
xAxis: [
{
splitLine: {
show: false,
},
type: 'value',
show: false,
},
],
yAxis: [
{
splitLine: {
show: false,
},
axisLine: {
//y轴
show: false,
},
type: 'category',
axisTick: {
show: false,
},
inverse: true,
data: [
'OCBG 滤片',
'OPBG ALPS',
'OCBG 楼镜线',
'OCBG 单反线',
'OPBG 米兰线',
'OPBG 光学',
'OCBG 镀膜线',
'BMBG 品园线',
'OCBG 滤片线',
'OPBG 滤线Cover',
],
axisLabel: {
color: '#aaa',
fontSize: 14,
margin: 145,
textStyle: {
align: 'left',
},
},
},
// {
// type: 'category',
// inverse: true,
// offset: 10,
// axisTick: 'none',
// axisLine: 'none',
// show: true,
// data: _data,
// axisLabel: {
// textStyle: {
// color: '#000',
// fontSize: '12',
// },
// },
// },
{
type: 'category',
inverse: true,
offset: 60,
axisTick: 'none',
axisLine: 'none',
show: true,
axisLabel: {
textStyle: {
color: '#000',
fontSize: '12',
},
formatter: (param) => {
let index;
if (param > 0) {
index = 1;
} else {
index = 2;
}
return `{img${index}|}{value|${param}%}`;
},
rich: {
img1: {
height: 25,
backgroundColor: { image: imgUp },
},
img2: {
height: 25,
backgroundColor: { image: imgDown },
},
},
},
data: _data,
},
],
series: [
{
name: '',
type: 'bar',
barWidth: 25, // 柱子宽度
label: {
show: false,
position: 'right', // 位置
color: '#000',
fontSize: 24,
distance: 12, // 距离
formatter: function (value, i) {
return value[i];
},
}, // 柱子上方的数值
itemStyle: {
barBorderRadius: [0, 0, 0, 0], // 圆角(左上、右上、右下、左下)
normal: {
color: function (params) {
return colors[params.dataIndex];
// 取每条数据的 index 对应 colors 中的 index 返回这个颜色
},
},
},
data: trueData,
},
],
};