我有一个用dygraphs完成的折线图,所有数据都是使用Datatable添加的,所以它有一系列可变的系列和数据点。
我想要做的就是指定每个系列颜色。我知道我可以在构造函数中使用这样的数组。
colors:
["#7FFF00", "#00FFFF", "#008080", "#00BFFF", "#FFD700", "#FF69B42", "#20B2AA",
"#FF0000", "#FFFF00", "#FF1493", "#000080", "#00FF00", "#6B8E23", "#00FA9A",
"#B0C4DE", "#F0E68C", "#DAA520"]
,
但正如我之前所说,系列的数量是可变且未知的。我知道我可以更新这样一个特定系列的选项:
g.updateOptions({
'S1001': {
strokeWidth: 10,
drawPoints: true,
pointSize: 4,
highlightCircleSize: 6,
}
});
其中S1001是系列的名称,但我找不到任何改变颜色的选项。
如果我知道系列ID,如何指定系列颜色?
提前致谢, 巴勃罗
编辑:我找到了一个非常有效的解决方法。我可以改变 通过设置" colorsMap _"中的值来显示系列的颜色和 然后重新绘制图形:g.colorsMap _ [" SeriesID"] =" #FFFFFFF&#34 ;;
g.updateOptions("任何选项,以便重新绘制图表");
有没有重绘或刷新图表的方法 包括调用updateOptions?
谢谢!
答案 0 :(得分:1)
回答可能为时已晚,但@pablito是正确的,应该有一个使用updateOptions直接更改颜色的选项。目前,不支持此功能,因此我们必须忍受黑客攻击。如果我们使用黑客
SET `goldbalance` = `goldbalance` + 100,
如上所述,它可以工作,但问题是Dygraph在放大或缩小后不记得更改。要使Dygraph记住更改,请实现以下
g.colorsMap_["SeriesID"] = "#FFFFFF";
g.updateOptions({});
答案 1 :(得分:1)
我在尝试解决这个问题时来到这里,所以我想添加一个更新的答案,希望它可以帮助别人。
从Dygraphs 2.0(contains breaking changes)开始,可以格式化单个系列。
您可以在选项中设置以下内容:
{
series: {
mySeriesName: {
color: "green", //Accepts CSS colour values.
//There are other properties you can set too:
strokeWidth: 3,
drawPoints: true,
pointSize: 5,
highlightCircleSize: 7
}
}
}
替换' mySeriesName'使用CSV文件或标签数组中的系列名称。
您可以尝试阅读有关series options的文档,但我个人并不清楚这一点。 This demo对我更有帮助。
答案 2 :(得分:0)
您应该在初始构造函数中定义比系列中更多的颜色:忽略超出系列数的额外条目。之后,当您添加系列时,将使用额外的颜色。显然,您需要决定要处理的最大系列数。