Highcharts库有一个默认的颜色数组:
http://api.highcharts.com/highcharts/colors
colors: ['#7cb5ec', '#434348', '#90ed7d', '#f7a35c', '#8085e9',
'#f15c80', '#e4d354', '#2b908f', '#f45b5b', '#91e8e1']
在“初始化”可以设置为你想要的任何东西 .
我的问题:“初始化后”,如何更新颜色数组并“重绘”图表?
对于单个系列,我发现我可以用一些复杂的颜色更新颜色......
chart.series[0].update({
color: {
radialGradient: { cx: .5, cy: .6, r: .25 },
stops: [
[0, '#ffffff'],
[1, '#73ff96']
]
}
}, true);
但气泡图有一个“默认”边框和“填充”,我似乎无法复制 .
http://www.highcharts.com/docs/chart-design-and-style/colors
因此,基本问题可能是:泡泡图在内部使用“colors”数组构建特定系列“颜色”属性的默认填充/不透明度设置是什么?什么是“颜色”属性?
更新
澄清如下:基于@morganfree答案 . 应用于单点,系列信息正确 .
下面,//取消选择恢复为正确的颜色,但当应用于单个点时,颜色变为灰色,带有参数,而不是这个红色的“高亮”
// unselect points
var points = chart.getSelectedPoints();
if (points.length > 0) {
Highcharts.each(points, function (point) {
point.select(false);
point.update({color: '#7cb5ec'}); // default color
});
}
// select current point
if(idx != -1)
{
chart.series[0].data[idx].select(true);
chart.series[0].data[idx].update({color: '#f45b5b'},true); // highlight color
}
http://fiddle.jshell.net/mshaffer/h39e2z0o/
请注意,select元素变为灰色,基于,我相信其中的默认参数
plotOptions: {
series: {
allowPointSelect: true
},
为“标记”
http://api.highcharts.com/highcharts/plotOptions.series.marker
“标记”是否允许这种动态重新着色?
另请注意,如果我随机化一个元素,然后更改系列颜色,则系列中的“randomized”元素不会更改回正确的颜色 .
更新2
看来plotOptions中“bubble”和“series”的事件是冲突的吗?点击vs选择?
2 回答
如果你想在初始化后更改系列的颜色,那么你必须遍历系列并更新它的颜色 - 将保留颜色的默认“感觉” .
示例:http://fiddle.jshell.net/mp27yb75/2/
特定气泡的颜色继承自系列颜色,但如果指定该点的颜色,则会再次保留默认的“感觉” .
示例:http://fiddle.jshell.net/mp27yb75/3/
对于气泡,填充的不透明度设置为0.5,笔触的不透明度设置为1,笔触和填充颜色相同 .
你可以这样做,
DEMO