有没有办法在渲染后用新数据更新径向(或圆形)条形图?
Is there a way to update with new data a Radial (or Circular) bar chart after rendering?
我想显示径向(或圆形)柱状高图 https://www.highcharts.com/docs/chart-and-series-types/radial-bar-chart
由于数据的计算时间较长,我想先显示图表,然后在准备好后更新数据。
默认绘制没有值的图表,但经过一些耗时的计算后会更新。我试过如下没有徒劳。
我尝试使用 radialGraph.series.update();函数但出现错误 Uncaught TypeError: radialGraph.series.update is not a function.
有人知道怎么做吗?谢谢。
// Loads default values
radialGraph = Highcharts.chart('container', {
colors: ['#FFD700', '#C0C0C0', '#CD7F32'],
chart: {
type: 'column',
inverted: true,
polar: true
},
title: {
text: 'Winter Olympic medals per existing country (TOP 5)'
},
tooltip: {
outside: true
},
pane: {
size: '85%',
innerSize: '20%',
endAngle: 270
},
xAxis: {
tickInterval: 1,
labels: {
align: 'right',
useHTML: true,
allowOverlap: true,
step: 1,
y: 3,
style: {
fontSize: '13px'
}
},
lineWidth: 0,
categories: [
'Norway <span class="f16"><span id="flag" class="flag no">' +
'</span></span>',
'United States <span class="f16"><span id="flag" class="flag us">' +
'</span></span>',
'Germany <span class="f16"><span id="flag" class="flag de">' +
'</span></span>'
]
},
yAxis: {
crosshair: {
enabled: true,
color: '#333'
},
lineWidth: 0,
tickInterval: 25,
reversedStacks: false,
endOnTick: true,
showLastLabel: true
},
plotOptions: {
column: {
stacking: 'normal',
borderWidth: 0,
pointPadding: 0,
groupPadding: 0.15
}
},
series: [{
name: 'Gold medals',
data: [0, 0, 0]
}, {
name: 'Silver medals',
data: [0, 0, 0]
}, {
name: 'Bronze medals',
data: [0, 0, 0]
}]
});
// After some time-consuming computations, update the series data with the below sample.
radialGraph.series.update([{
name: 'Gold medals',
data: [132, 105, 92]
}, {
name: 'Silver medals',
data: [125, 110, 86]
}, {
name: 'Bronze medals',
data: [111, 90, 60]
}]);
// I tried updating as above but keep getting: Uncaught TypeError: radialGraph.series.update is not a function
<script src="https://code.highcharts.com/highcharts.js"></script>
<script src="https://code.highcharts.com/highcharts-more.js"></script>
<link rel="stylesheet" href="https://github.com/downloads/lafeber/world-flags-sprite/flags16.css" />
<figure class="highcharts-figure">
<div id="container"></div>
</figure>
series
属性 是一个数组。要更新它,您可以使用 chart.update
方法:
radialGraph.update({
series: [{
name: 'Gold medals',
data: [132, 105, 92]
}, {
name: 'Silver medals',
data: [125, 110, 86]
}, {
name: 'Bronze medals',
data: [111, 90, 60]
}]
});
现场演示: http://jsfiddle.net/BlackLabel/09um5nr8/
API参考:https://api.highcharts.com/class-reference/Highcharts.Chart#update
或通过series.setData
或series.update
方法更改每个系列的数据:
const series = radialGraph.series;
series[0].setData([132, 105, 92], false);
series[1].setData([125, 110, 86], false);
series[2].setData([111, 90, 60]);
现场演示: http://jsfiddle.net/BlackLabel/xws8a5co/
API参考:https://api.highcharts.com/class-reference/Highcharts.Series#setData
我想显示径向(或圆形)柱状高图 https://www.highcharts.com/docs/chart-and-series-types/radial-bar-chart
由于数据的计算时间较长,我想先显示图表,然后在准备好后更新数据。
默认绘制没有值的图表,但经过一些耗时的计算后会更新。我试过如下没有徒劳。
我尝试使用 radialGraph.series.update();函数但出现错误 Uncaught TypeError: radialGraph.series.update is not a function.
有人知道怎么做吗?谢谢。
// Loads default values
radialGraph = Highcharts.chart('container', {
colors: ['#FFD700', '#C0C0C0', '#CD7F32'],
chart: {
type: 'column',
inverted: true,
polar: true
},
title: {
text: 'Winter Olympic medals per existing country (TOP 5)'
},
tooltip: {
outside: true
},
pane: {
size: '85%',
innerSize: '20%',
endAngle: 270
},
xAxis: {
tickInterval: 1,
labels: {
align: 'right',
useHTML: true,
allowOverlap: true,
step: 1,
y: 3,
style: {
fontSize: '13px'
}
},
lineWidth: 0,
categories: [
'Norway <span class="f16"><span id="flag" class="flag no">' +
'</span></span>',
'United States <span class="f16"><span id="flag" class="flag us">' +
'</span></span>',
'Germany <span class="f16"><span id="flag" class="flag de">' +
'</span></span>'
]
},
yAxis: {
crosshair: {
enabled: true,
color: '#333'
},
lineWidth: 0,
tickInterval: 25,
reversedStacks: false,
endOnTick: true,
showLastLabel: true
},
plotOptions: {
column: {
stacking: 'normal',
borderWidth: 0,
pointPadding: 0,
groupPadding: 0.15
}
},
series: [{
name: 'Gold medals',
data: [0, 0, 0]
}, {
name: 'Silver medals',
data: [0, 0, 0]
}, {
name: 'Bronze medals',
data: [0, 0, 0]
}]
});
// After some time-consuming computations, update the series data with the below sample.
radialGraph.series.update([{
name: 'Gold medals',
data: [132, 105, 92]
}, {
name: 'Silver medals',
data: [125, 110, 86]
}, {
name: 'Bronze medals',
data: [111, 90, 60]
}]);
// I tried updating as above but keep getting: Uncaught TypeError: radialGraph.series.update is not a function
<script src="https://code.highcharts.com/highcharts.js"></script>
<script src="https://code.highcharts.com/highcharts-more.js"></script>
<link rel="stylesheet" href="https://github.com/downloads/lafeber/world-flags-sprite/flags16.css" />
<figure class="highcharts-figure">
<div id="container"></div>
</figure>
series
属性 是一个数组。要更新它,您可以使用 chart.update
方法:
radialGraph.update({
series: [{
name: 'Gold medals',
data: [132, 105, 92]
}, {
name: 'Silver medals',
data: [125, 110, 86]
}, {
name: 'Bronze medals',
data: [111, 90, 60]
}]
});
现场演示: http://jsfiddle.net/BlackLabel/09um5nr8/
API参考:https://api.highcharts.com/class-reference/Highcharts.Chart#update
或通过series.setData
或series.update
方法更改每个系列的数据:
const series = radialGraph.series;
series[0].setData([132, 105, 92], false);
series[1].setData([125, 110, 86], false);
series[2].setData([111, 90, 60]);
现场演示: http://jsfiddle.net/BlackLabel/xws8a5co/
API参考:https://api.highcharts.com/class-reference/Highcharts.Series#setData