Javascript 动态图改变每个系列的颜色

Javascript 动态图改变每个系列的颜色,javascript,dygraphs,Javascript,Dygraphs,我用动态图做了一个折线图,所有的数据都是用一个数据表添加的,所以它有一个可变数量的序列和数据点 我只想指定每个系列的颜色。我知道我可以像这样在构造函数中使用数组 colors: ["#7FFF00", "#00FFFF", "#008080", "#00BFFF", "#FFD700", "#FF69B42", "#20B2AA", "#FF0000", "#FFFF00", "#FF1493", "#000080", "#00FF00", "#

我用动态图做了一个折线图,所有的数据都是用一个数据表添加的,所以它有一个可变数量的序列和数据点

我只想指定每个系列的颜色。我知道我可以像这样在构造函数中使用数组

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,如何指定序列颜色

提前感谢,, 巴勃罗

编辑:我找到了一个很好的解决办法。我可以改变 通过设置“颜色映射”中的值来确定系列的颜色,以及 然后重新绘制图形,以便:

g、 颜色贴图[“SeriesID”]=“FFFFFF”

g、 updateOptions(“重新绘制图形的任何选项”)

是否有任何方法可以重新绘制或刷新图形 包括调用updateOptions

谢谢


您应该定义比初始构造函数中的系列更多的颜色:超出系列数量的额外条目将被忽略。稍后,当您添加系列时,将使用额外的颜色。显然,您需要决定要处理的系列的最大数量。

回答可能太晚了,但是@pablito正确的是,应该有一个选项可以使用updateOptions直接更改颜色。目前,该功能不受支持,因此我们不得不忍受黑客攻击。如果我们使用黑客

g.colorsMap_["SeriesID"] = "#FFFFFF";
g.updateOptions({});
如上所述,它可以工作,但问题是,一旦放大或缩小,动态图就记不住这些变化。要使动态图记住更改,请实现以下步骤

g.colorsMap_["SeriesID"] = "#FFFFFF";
g.updateOptions({});
g.user_attrs_.colors[index] = "#FFFFFF"; // Where index is index number of the SeriesID
Dygraph.updateDeep(g.user_attrs_, g.user_attrs_);

我来这里是为了解决这个问题,所以我添加了一个更新的答案,希望它能帮助其他人

从Dygraphs 2.0开始,可以格式化单个系列

您可以在选项中设置以下内容:

{
    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文件或标签数组中给定的系列名称


您可以尝试阅读有关的文档,但我个人并不觉得所有这些都那么清楚。对我更有帮助

但是我感兴趣的是通过名字改变一个特定系列的颜色。啊,这个想法对你没有帮助!如果有一个调色板就好了,这样每个系列都可以有一个调色板索引,它指向一个特定的颜色表条目。然后你可以通过改变调色板索引来切换颜色。也许你可以提交一份bug报告来请求这个?