【发布时间】:2014-04-07 06:41:04
【问题描述】:
我正在尝试使用 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);
});
这是我从代码中得到的。请注意,图例颜色已相应设置,但线条颜色仍为橙色。
更新:
我用 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。
【问题讨论】:
标签: javascript jquery amcharts