получить доступ к элементу SVG в диаграмме HighCharts - PullRequest
0 голосов
/ 06 июня 2019

Последняя строка следующего кода (жестоко скопированная со страницы демонстрационной диаграммы HighCharts) изменяет непрозрачность серии arearange:

var chart=Highcharts.chart('container', {

    series: [{
        name: 'Temperature',
        data: averages,
        zIndex: 1,
        marker: {
            fillColor: 'white',
            lineWidth: 2,
            lineColor: Highcharts.getOptions().colors[0]
        }
    }, {
        name: 'Range',
        data: ranges,
        type: 'arearange',
        lineWidth: 0,
        linkedTo: ':previous',
        color: Highcharts.getOptions().colors[0],
        fillOpacity: 0.3,
        zIndex: 0,
        marker: {
            enabled: false
        }
    }]
});

chart.series[1].update({fillOpacity:0.7},true);

JSFiddle здесь .

(непрозрачность может быть установлена ​​непосредственно внутри объекта диаграммы, но мне нужно изменить его после создания диаграммы, код является игрушечным примером для имитации моих потребностей)

В моем реальном графике есть несколько серий arearange, и их обновление очень сложное. Есть ли способ изменить такое свойство, избегая метода .update? что, есть ли способ прямого доступа к элементу svg, соответствующему серии arearange?

Я пытался проверить свойство .graph серии, как ранее предлагалось в ответе на подобный вопрос, но в этом случае у серии arearange нет свойства .graph.

1 Ответ

1 голос
/ 06 июня 2019

Это можно сделать точно так же, как в ответе, упомянутом в вашем вопросе, но вместо изменения graph необходимо изменить свойство area.

Код:

  chart.series[1].area.attr({
    fill: 'rgba(124,181,236,0.7)'
  });

Демонстрация:

...