Как разместить точку перегиба полилинии в центре гистограммы в диаграммах - PullRequest
0 голосов
/ 18 марта 2020

Нажмите здесь, чтобы увидеть диаграммы

Я хочу разместить точку перегиба ломаной в центре красной гистограммы. Я просмотрел документацию по диаграммам, но не смог найти соответствующая конфигурация. Есть ли способ сделать это?

Я нашел рабочий метод, но он не работает для моего текущего графика. Потому что моя диаграмма также включает компонент 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 голосов
/ 21 марта 2020

У вас есть несколько xAxes в диаграмме для каждой серии, но dataZoom не знает об этом . Просто добавьте xAxisIndex: [0,1] к dataZoom для использования всех осей, и оно будет работать.

dataZoom: [{
  [...]
  xAxisIndex: [0,1]
  }, {
  [...]
}]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...