1

我有一个简单的折线图,其中包含每日数据样本。但范围是用户可选择的(从 2 天到几年的数据)。

var chartConfig = {
    xaxis: {
        mode: "time",
        timeformat: "%Y/%m/%d"
    }
};

$.plot($("#chart"), readings, chartConfig);

我希望 x 轴刻度显示日期(例如 2013/07/15),但仅显示适当数量的刻度,均匀分布在整个范围内,以便标签文本不会溢出(例如 10 个刻度)。

我已经查看了tickSizeminTickSize,但这些只是“指南”——超过 4 个刻度,它们在这个用例中没有影响。

4

1 回答 1

1

最后,我自己编写了一些东西来显示固定数量的滴答声,而不管数据范围如何。

它计算要显示刻度的样本的间隔,然后使用模运算符测试是否显示样本刻度。

var ticks = [];
var tick_count = 7; //number of ticks to show
var sample_count = readings[0].data.length;
var display_interval = Math.round((sample_count/tick_count));
for (var i = 0; i < sample_count; i++) {
    if((i % display_interval) == 0) {
       ticks.push(readings[0].data[i][0]);
    }
}
chartConfig.xaxis.ticks = ticks;
$.plot($("#chart"), readings, chartConfig);

这假设所有样本都具有相同的持续时间。

于 2013-07-15T12:45:05.483 回答