Highcharts-在自定义颜色上应用渐变
这是我的数据模型:Highcharts-在自定义颜色上应用渐变,highcharts,Highcharts,这是我的数据模型: data = [{y: 123, color: "#FF7600"}, {y: 321, color: "#00FFE3"}, {y: 213,color: "#444444"}] 然后将该系列添加到饼图中: $http({ method: 'GET', url: /pie-chart, params: {}) .success(function (data) { chart.addSeries({ type: 'pie',
data = [{y: 123, color: "#FF7600"}, {y: 321, color: "#00FFE3"}, {y: 213,color: "#444444"}]
然后将该系列添加到饼图中:
$http({ method: 'GET', url: /pie-chart, params: {})
.success(function (data) {
chart.addSeries({
type: 'pie',
data: data
})
});
以下是highcharts的官方演示:它循环数据,读取颜色,创建颜色数组,并在绘制图表时使用此数组。
但我正在考虑避免从JSON中提取颜色的解决方案。
有什么想法吗?非常感谢 已编辑、已解决 放弃:)。
我最终创建了highcharts演示中描述的颜色数组。
它工作得很好
// Get colors from received data, create color array,
var colors = [];
for (var i = 0; i < data[0].series.length; i++) {
colors.push(data[0].series[i].color);
// Delete original colors, so that new radialized are used
delete(data[i].color);
}
// Use color array and radialize each color
Highcharts.getOptions().colors = Highcharts.map(colors, function(color) {
return {
linearGradient: { x1: 0, y1: 0, x2: 1, y2: 0 },
stops: [
[0, color],
[1, Highcharts.Color(color).brighten(-0.3).get('rgb')] // darken
]
};
});
//从接收到的数据中获取颜色,创建颜色数组,
var颜色=[];
对于(var i=0;i
上述解决方案在全局默认值中设置颜色。如果只有一个图表,这是可以的,但是如果有多个图表,这可能会有问题,因为颜色将适用于所有图表
通过仅在本地数据数组中重新映射颜色,可以在单个图表级别上对此进行着色。下面是我为饼图所做的
chartData是一组数据,如:
[
{
“颜色”:“#01080f”,
“名称”:“无状态”,
“y”:8570
},
{
“颜色”:“1A942C”,
“名称”:“已部署”,
“y”:27952
},
...
{
“颜色”:“f36e20”,
“名称”:“不同步”,
“y”:241
}
]
在我的javascript代码中,它从服务器检索并应用于Highcharts对象的series.data元素
只需在将该数据元素添加到highcharts对象之前对其进行操作
//检索图表数据
$.getJSON('/api/endpoint/policystatus',函数(chartData){
//函数用渐变替换平面颜色
函数colorizeData(数据){
data.color={
径向梯度:{cx:0.5,cy:0.3,r:0.7},
停止:[
[0,data.color],
[1,Highcharts.Color(data.Color).变亮(-0.3).get('rgb')]//变暗
]
};
}
//为检索到的数据中的每个元素调用函数
chartData.forEach(彩色数据);
//继续构建图表
$(“#饼图一般状态”)。高图({
// ....
上面的“colorizeData”接受图表数据输入,查找“color”元素,然后将其替换为基于相同颜色的Highcharts渐变
请注意,您必须使用十六进制或RGB值;它不适用于定义为“绿色”或“蓝色”的颜色。“数据”实际上是复数。正确用法是“数据是”而不是“数据是”,单个数据是“数据”虽然我们从来没有这样使用过它。@Jara所以问题解决了吗?@Sebatian。我查询的正确英语语法是固定的。当自定义颜色是数据对象参数之一时,仍然没有找到如何应用渐变。我们将非常感谢您的帮助。(jsfiddle示例将是最好的)。