我有一个Highcharts极坐标图,它可以很好地内联显示我的数据,但我的应用程序的工作流程要求数据与图表配置分开加载。当我使用chart.series[0].setData(mySeriesData)
时,其他图表类型似乎工作正常,但极坐标图看起来很傻。除了系列数据外,两个图表的图表配置完全相同。我做错了什么?
下面是我的例子:https://jsfiddle.net/cfarmerga/br3cz4vf/
我的图表:
const config = {
"chart": {
"polar": true,
parallelCoordinates: true,
parallelAxes: {
gridLineWidth: 0,
},
},
"series": [
{
"name": "one",
"type": "line",
},
{
"name": "two",
"type": "line",
},
],
"title": { "text": "" },
"xAxis": {
"gridLineWidth": 0,
"labels": {
"enabled": true,
},
categories: ['0', '1', '2', '3', '4'],
type: 'category'
},
"yAxis": [
{
"max": 10,
"min": -10,
},
{
"max": 450,
"min": 300,
},
{
"max": 12,
"min": 1,
},
{
"max": 12,
"min": 2,
},
{
"max": 12,
"min": 2,
}
],
};
// Set up first chart with inline data specified in the series
const config1 = JSON.parse(JSON.stringify(config));
config1.title.text = "in-line data shows ok"
config1.series[0].data = data1;
config1.series[1].data = data2;
const chart1 = Highcharts.chart(containerId, config1);
// Set up second chart with no initial data...
const config2 = JSON.parse(JSON.stringify(config));
config2.title.text = "Why doesn't dynamic data loading work?"
const chart2 = Highcharts.chart(containerId2, config2);
// ... but try to dynamically load datasets into series
chart2.series[0].setData(data1);
chart2.series[1].setData(data2);
chart2.redraw();
1条答案
按热度按时间ma8fv8wu1#
来自高排行榜Github:
在目前的实作中,图表只会在图表初始化时建立平行轴。这是由效能决定的:一般来说,平行图表是用于大量的数据。2观察数据集的变化(类别的数量等)会消耗相当多的性能,我们认为在我们真正需要的时候重新创建图表会更容易和更快。
作为一种解决方案,您可以在收到数据时创建一个图表,或者使用
chart.update
:现场演示:https://jsfiddle.net/BlackLabel/tnhy9a1u/
Github问题:https://github.com/highcharts/highcharts/issues/16380