Dojo图表:我可以根据值更改线条的颜色吗?

时间:2012-11-25 15:16:53

标签: dojo dojox.charting

我有一个使用Dojo 1.8的工作图表。

chart1 = new dojox.charting.Chart2D("chart1");
chart1.addPlot("default", {type: "Lines", ...
chart1.addSeries("Series A", [{ x: 1, y: 2.3, tooltip: "Value 1"}, ...

我系列中的数据正确显示为线条,整条线(系列)的颜色为“绿色”。 我知道如何更改整个系列的颜色,但是这条线可能会根据数据值改变颜色吗?让我们假设x轴是一个时间轴,我需要线(系列)为绿色直到今天,然后红色为未来值。 这有可能吗?怎么样? (我正在使用值的标记。如果这些值可以根据值改变就足够了)

我在文档中发现了类似的内容:

chart.addSeries("Series A", [
    {y: 4, color: "red"},
    {y: 2, color: "green"},
    {y: 1, color: "blue"},
    {y: 1, text: "Other", **color: "white", fontColor: "red"**}
]);

但它仅适用于PIE图表而不适用于LINES图表。

提前谢谢。

2 个答案:

答案 0 :(得分:5)

你可以尝试这个http://jsfiddle.net/jUS54/

在addPlot方法中使用styleFunc更改标记颜色:

 var chart1 = new Chart("simplechart");
    chart1.addPlot("default", {type: Lines, markers:true, styleFunc: function(item {
    if(item <= 2){ 
      return { fill : "red" };
    }else if(item > 3){
      return { fill: "green" };
    }
    return {};
  }});

答案 1 :(得分:1)

您可以通过在图表数据中添加“填充”来更改颜色。基本上,在构造ChartData的JSON时,循环输入数据来决定设置填充的内容。

var chartData = [{y: 10000,fill: "red"},{y:9200,fill: "yellow"},{y:11811,fill: "green"},{y:12000,fill: "blue"},{y:7662,fill: "blue"},{y:13887,fill: "black"},{y:14200,fill: "gray"},{y:12222,fill: "purple"},{y:12000,fill: "green"},{y:10009,fill: "purple"},{y:11288,fill: "green"},{y:12099,fill: "blue"}];

http://jsfiddle.net/goinoff/QnNk2/1/