如何在echarts中将折线的拐点放置在直方图的中心

时间:2020-03-18 07:05:28

标签: echarts

Click here to see the charts

我想将折线的拐点放在红色直方图的中心。我浏览了echarts的文档,但找不到对应的配置,有什么办法吗?

我找到了一种可行的方法,但不适用于当前图表。因为我的图表还包含dataZoom组件。当我放大和缩小图表时,其数据布局变得凌乱。这是我发现的方法(https://segmentfault.com/q/1010000018354786):

option = {
    tooltip: {
        trigger: 'axis',
        axisPointer: {
            type: 'cross',
            crossStyle: {
                color: '#999'
            }
        }
    },
    xAxis: [{
        type: 'category',
        data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
        axisPointer: {
            type: 'shadow'
        }
    }, ],
    yAxis: [{
            type: 'value',
            name: '水量',
            min: 0,
            max: 250,
            interval: 50,
            axisLabel: {
                formatter: '{value} ml'
            }
        }
    ],
    series: [{
            name: '柱1',
            type: 'bar',
            data: [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],
            z: 1
        },
        {
            name: '柱2',
            type: 'bar',
            data: [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3],
            z: 1

        },
        {
            xAxisIndex: 1,
            name: '线1',
            type: 'line',
            itemStyle:{
                normal:{
                    lineStyle:{
                        color: '#c23c31',
                        type:'dotted' //'dotted'虚线 'solid'实线
                    }
                }
            }, 
            data: [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],
        },
        {
            xAxisIndex: 1,
            name: '线2',
            type: 'line',
            itemStyle:{
                normal:{
                    lineStyle:{
                        color: '#2f4554',
                        type:'dotted'
                    }
                }
            }, 
            data: [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3],
        }
    ]
};

// 增加了一个隐藏的x轴,用来控制线图的点的位置
option.xAxis[1] = {
    type: 'value',
    max: option.xAxis[0].data.length * 100,
    show: false
}
option.series[2].data = option.series[2].data.map((x, i) => [27 + i * 100, x])
option.series[3].data = option.series[3].data.map((x, i) => [73 + i * 100, x])

1 个答案:

答案 0 :(得分:0)

每个系列的图表中都有一些xAxes,但是dataZoom don't know about it。 只需将xAxisIndex: [0,1]添加到dataZoom即可使用所有轴,它将起作用。

dataZoom: [{
  [...]
  xAxisIndex: [0,1]
  }, {
  [...]
}]