我使用dojox.charting.DataSeries从dojo.data.ItemFileReadStore创建Dojo折线图。我使用DataSeries构造函数的第三个参数(值)来指定将在图表上生成点的方法。例如使用dojox.charting.DataSeries时添加x轴标签
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阵列可以通过preparsing的dataSeries被创建,但它周围不是一个很不错的工作。
有没有人有任何想法如何扩展formatLineGraphItem方法来提供x轴标签。还是没有人有任何关于o可以包含的对象的值的文档?
在此先感谢!
嗨,谢谢你的快速回复。我已经将时间值格式化为文本(在商店内),我想将其应用于标签。我使用了一系列数字,以便我的点以固定间隔出现(因为我的时间不会总是连续的几天)。使用原始毫秒值会导致值之间的较大差距。 – Mudged