我正在使用 dojox.charting.DataSeries 从 dojo.data.ItemFileReadStore 创建一个 Dojo 折线图。我正在使用 DataSeries 构造函数的第三个参数(值)来指定将在图表上生成点的方法。例如
function formatLineGraphItem(store,item)
{
var o = {
x: graphIndex++,
y: store.getValue(item, "fileSize"),
};
return o;
}
graphIndex 是一个整数,每增加一个 fileSize 值。这给了我一个折线图,其中 fileSize 显示了一个数字计数。这工作正常。
我想要的是能够指定要使用的 x 轴标签而不是 graphIndex 的值,即底层数据仍将是 1,2,3,4 但标签将显示文本(在这种情况下是时间捕获文件大小的位置)。
当我调用chart.addAxis() 时,我可以通过将一组标签传入x asis 来做到这一点,但这需要我在遍历数据之前知道这些值。例如
var dataSeriesConfig = {query: {id: "*"}};
var xAxisLabels = [{text:"2011-11-20",value:1},{text:"2011-11-21",value:2},{text:"2011-11-22",value:3}];
var chart1 = new dojox.charting.Chart("chart1");
chart1.addPlot("default", {type: "Lines", tension: "4"});
chart1.addAxis("x", {labels: xAxisLabels});
chart1.addAxis("y", {vertical: true});
chart1.addSeries("Values", new dojox.charting.DataSeries(dataStore, dataSeriesConfig, formatLineGraphItem));
chart1.render();
xAxisLabels 数组可以通过准备 dataSeries 来创建,但这不是一个很好的解决方法。
有谁知道如何扩展 formatLineGraphItem 方法以提供 x 轴标签。或者有没有人有任何关于对象 o 可以包含哪些值的文档?
提前致谢!