如何在不规则(例如31,28,31 ......等)值上获得dojox.charting标签?

时间:2011-03-15 21:58:19

标签: javascript dojo dojox.charting

我正在尝试使用dojox.charting输出月度数据的简单图表。

目前,我希望每个月每天显示一个点,持续一年。我有工作。

问题是:我找不到为每个月添加图表标签的方法。

我希望“1月”为0,“2月”为31,“3月”为59,等等。

据我所知,dojox.charting仅支持在常规值上使用标签,例如。 30,60,90等。

有什么方法可以轻松地做到这一点,或者是否需要更改dojo的代码?

请参阅此jsfiddle,例如:http://jsfiddle.net/svjrz/

2 个答案:

答案 0 :(得分:0)

dojox.charting还不支持时间序列。

当我需要提供不规则数据(例如每月)时,通常我会将每日数据插入到月度比例中以常规刻度(1月,2月等)作为线/面积图表(您可以在那里尝试样条) 。当用户向下钻取时,我会切换到每周/每日视图。

是的,这是更多的工作,但结果正是我想要的,而不是“什么是可用的”。

答案 1 :(得分:0)

我提供了一个可能的解决方案in this post

基于时间的图表需要填充非连续数据。

您需要在SQL或PHP中为X轴生成完整的一系列日期值。我使用带有一个DATE字段的日历表的MySQL技巧,以及用一个范围内的所有日期填充它的过程。 JavaScript可以直接转换ISO日期。

然后,您可以使用以下方法将分散的数据输出为基于时间的连续系列:

SELECT DISTINCT(t0.datefield) AS Date, SUM(t1.sales) AS Sales FROM T_Sales AS t1 RIGHT JOIN T_Cal AS t0 ON t0.datefield = DATE(t1.saledate) WHERE t0.datefield >= DATE(NOW() - INTERVAL 6 MONTH) AND t0.datefield <= DATE(NOW())