AmChart:为图表设置lineColor失败

时间:2014-03-05 09:37:54

标签: javascript jquery amcharts

我正在尝试使用StockChart获取多线图。首先我尝试没有专门设置颜色属性,但我得到的线都是橙色。因此,我尝试使用StockPanel类中的“colors”数组强制图形具有不同的颜色。这适用于设置legendColor但在设置线条颜色时失败。

我做了什么傻事吗?如何触发颜色自动分配?

这是我的代码:

var stockPanel1 = new AmCharts.StockPanel();
stockPanel1.showCategoryAxis = true;

var graph1;

$.each($("#building-select").val(), function(index, value) {
    graph1 = new AmCharts.StockGraph();
    graph1.valueField = buildingNames[value];
    graph1.legendColor = stockPanel1.colors[index]; // this works
    graph1.lineColor = stockPanel1.colors[index];   // this does not work
    graph1.title = buildingNames[value];
    graph1.bulletBorderColor = "#FFFFFF";
    graph1.bulletBorderAlpha = 1;                                       
    graph1.balloonText = buildingNames[value] + ":<b>$[[value]]</b>";
    stockPanel1.addStockGraph(graph1);
});

这是我从代码中得到的。请注意,相应地设置了图例颜色,但线条颜色仍为橙色。 Legend colors are fine, but line colors are all orange

更新

我用JSON格式替换了创建代码,添加了“useDataSetColors:false”配置。它适用于初始行。

stockGraphs: [{
    id: "g1",
    valueField: $("#type-select").val(),
    comparable: true,
    useDataSetColors: false,
    lineColor: Colors[0],    // this works
    compareField: $("#type-select").val(),
    balloonText: "[[title]]:<b>$[[value]]</b>",
    compareGraphBalloonText: "[[title]]:<b>$[[value]]</b>"
}]

对于正在进行的添加行,我直接将颜色属性分配给数据集:

$.each($(this).val(), function(index, value) {
    chartDataSets[value].color = Colors[index];
    if (index == 0) {
        chart.mainDataSet = chartDataSets[value];
    } else {
        chartDataSets[value].compared = true;
    }
});

我想这只是一些解决方法,如果有更好的方法,请告诉我,非常感谢。

另外,如何添加轴标签并将图例重新定位到底部?适用于常规amCharts的配置似乎不适用于StockCharts。

1 个答案:

答案 0 :(得分:3)

尝试设置graph.useDataSetColors = false;