前言
在之前的几篇文章中,我试图复现下面的这张图表。
目前复现的效果如下:
今天我想要实现的效果是让y轴与对应的折线显示同样的颜色。
1.调色盘介绍
我早就听说echarts存在一个调色盘的概念,如今终于是好好的了解了一下。调色盘就是配置项中的color
属性,它的值是一个颜色数组,它的作用是给系列设置颜色(如果系列本身没有设置颜色的话)
例如我设置了调色盘后效果如下:
{
color:[
'Aqua',
'BurlyWood'
],
}
之后通过调色盘我就可以方便的将我的图表设置为示例图中一样的颜色。
不过不得不说,调色盘与我想象中的效果差别很大,我没想到它只能应用与系列,我本以为也可以在轴线中使用调色盘中的颜色的。
2.给y轴设置颜色
最后发现只能使用最笨的方法一个个的给y轴添加颜色。我这里使用了代码来添加:
const option = ref({
color: ["#F30502", "#FBA603", "#067E05", "#0000EB", "#82007A", "#FCB9CB"],
tooltip: {
trigger: "axis",
},
legend: {},
grid: {
left: "3%",
right: "4%",
bottom: "3%",
containLabel: true,
},
toolbox: {
feature: {
saveAsImage: {},
},
},
grid: {
left: "20%",
right: "20%",
},
xAxis: {
type: "category",
boundaryGap: false,
data: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
axisLine: {},
},
yAxis: [
{
type: "value",
name: "水位(m)",
axisLine: {
show: true,
},
axisLabel: {
inside: true,
},
},
{
type: "value",
name: "流量(m³/s)",
axisLine: {
show: true,
},
axisLabel: {
inside: true,
},
},
{
type: "value",
name: "指标参数三",
position: "right",
offset: 60,
axisLine: {
show: true,
},
axisLabel: {
inside: true,
},
},
{
type: "value",
name: "指标参数四",
position: "right",
offset: 120,
axisLine: {
show: true,
},
axisLabel: {
inside: true,
},
},
{
type: "value",
name: "指标参数五",
position: "left",
offset: 60,
axisLine: {
show: true,
},
axisLabel: {
inside: true,
},
},
{
type: "value",
name: "指标参数六",
position: "left",
offset: 120,
axisLine: {
show: true,
},
axisLabel: {
inside: true,
},
},
],
series: [
{
name: "xxx水位",
type: "line",
yAxisIndex: 0,
data: [120, 132, 101, 134, 90, 230, 210],
},
{
name: "xxx流量",
type: "line",
yAxisIndex: 1,
data: [220, 182, 191, 234, 290, 330, 310],
},
{
name: "series3",
type: "line",
yAxisIndex: 2,
data: [150, 232, 201, 154, 190, 330, 410],
},
{
name: "series4",
type: "line",
yAxisIndex: 3,
data: [320, 332, 301, 334, 390, 330, 320],
},
{
name: "series5",
type: "line",
yAxisIndex: 4,
data: [820, 932, 901, 934, 1290, 1330, 1320],
},
{
name: "series6",
type: "line",
yAxisIndex: 5,
data: [582, 570, 543, 599, 610, 550, 560],
},
],
});
option.value.yAxis.forEach((axis, i) => {
axis.axisLine.lineStyle = { color: option.value.color[i] };
});