动态更改高图中的系列颜色
Changing series color in highcharts dynamically
我已经能够更改样条曲线图上的笔划颜色,但点和图例直到我通过单击它然后在每个点上鼠标来隐藏和显示序列之后才会更改颜色。
我这里有一把小提琴:http://jsfiddle.net/J56hm/2/
$(function () {
var chart = new Highcharts.Chart({
chart: {
renderTo: 'container'
},
xAxis: {
categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
},
series: [{
data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
}]
});
// the button handler
$('#button').click(function() {
chart.series[0].color = "#FF0000";
chart.series[0].graph.attr({ stroke: '#FF0000' });
$.each(chart.series[0].data, function(i, point) {
point.graphic.attr({ fill: '#FF0000' });
});
chart.series[0].redraw();
chart.redraw();
});
});
你知道为什么会发生这种情况吗?或者有办法解决这个问题吗?
很简单,您可以使用以下代码
chart.series[0].options.color = "#008800";
chart.series[0].update(chart.series[0].options);
highcharts论坛上的以下线程有一个解决方案:
http://highslide.com/forum/viewtopic.php?f=9&t=7075&p=33437http://jsfiddle.net/G5Pk7/
var chart = new Highcharts.Chart({
chart: {
renderTo: 'container'
},
xAxis: {
categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
},
series: [{
data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
}]
});
$('#button').click(function() {
var series = chart.series[0];
series.color = "#FF00FF";
series.graph.attr({
stroke: '#FF00FF'
});
chart.legend.colorizeItem(series, series.visible);
$.each(series.data, function(i, point) {
point.graphic.attr({
fill: '#FF00FF'
});
});
series.redraw();
});
这显然是一个肮脏的解决方案,但似乎奏效了。
你看控制台了吗?
ReferenceError:未定义系列
http://fiddle.jshell.net/J56hm/1/show/
39号线
更改为以下解决了问题
$.each(chart.series[0].data, function(i, point) {
...
}
但现在情况正好相反,当你悬停在这些点上时,它会再次变蓝您正试图通过设置颜色属性来直接操作由highcharts渲染的svg。这不是正确的方式,因为highchart可能会根据其渲染算法重新绘制图表,您所做的所有更改都可能丢失
在说了这么多之后,我仍然不知道在高图中有任何支持的方法可以做到这一点,如果我想出一些,我会更新答案
@jsFiddle
相关文章:
- 动态更改高图中的系列颜色
- 如何在tinymce编辑器中启用字体系列和颜色选项
- 无法在系列中为 Highstock API 设置单个点颜色,它适用于 Highchart API
- 更改Highcharts中的系列名称和颜色
- 用不同颜色填充的Highchart数据系列
- 更改高图表系列颜色
- 更改同一系列数据中的数据的条形颜色
- 设置内容样式包含字体系列、字体大小和颜色的可编辑列表 (
- )
- Highcharts 图形默认系列填充颜色覆盖状态填充颜色(包括 jsfiddle)
- dygraph 更改每个系列的颜色
- Highcharts:如何在悬浮散点图系列时更改线条颜色
- Highcharts:如何在多个系列中使列具有特定的颜色
- 高位图:将多系列条形图中的每个条形图设置为不同的颜色
- 将highcharts数据标签backgroundColor设置为与其系列相同的颜色
- 将甜甜圈图的系列标签颜色改为系列颜色
- 高图:改变一个系列中气泡的颜色
- 将高库存导航器的颜色更改为与第一个系列相同
- 航路图:绘制不同颜色的点,相同的数据系列
- 轴的颜色与系列的线条相同
- 系列悬停以突出边框颜色