Commit fb24a990 authored by David Schnur's avatar David Schnur

Merge pull request #46 from markrcote/master

Fix minTickSize for year units
parents 64e19c8c fd809089
......@@ -29,6 +29,8 @@ and "flot-overlay" to prevent accidental clashes (issue 540).
Changes:
- Fixed display of year ticks (patch by Mark Cote, issue 195).
- Support for time series moved to plugin (patch by Mark Cote).
- Display time series in different time zones (patch by Knut Forkalsrud,
......
......@@ -22,6 +22,7 @@
<p>Zoom to: <button id="whole">Whole period</button>
<button id="nineties">1990-2000</button>
<button id="latenineties">1996-2000</button>
<button id="ninetynine">1999</button></p>
<p>The timestamps must be specified as Javascript timestamps, as
......@@ -55,6 +56,17 @@ $(function () {
});
});
$("#latenineties").click(function () {
$.plot($("#placeholder"), [d], {
xaxis: {
mode: "time",
minTickSize: [1, "year"],
min: (new Date(1996, 1, 1)).getTime(),
max: (new Date(2000, 1, 1)).getTime()
}
});
});
$("#ninetynine").click(function () {
$.plot($("#placeholder"), [d], {
xaxis: {
......
......@@ -163,18 +163,28 @@ for details.
// special-case the possibility of several years
if (unit == "year") {
var magn = Math.pow(10, Math.floor(Math.log(axis.delta / timeUnitSize.year) / Math.LN10));
var norm = (axis.delta / timeUnitSize.year) / magn;
if (norm < 1.5)
size = 1;
else if (norm < 3)
size = 2;
else if (norm < 7.5)
size = 5;
else
size = 10;
// if given a minTickSize in years, just use it,
// ensuring that it's an integer
if (opts.minTickSize != null && opts.minTickSize[1] == "year") {
size = Math.floor(opts.minTickSize[0]);
} else {
var magn = Math.pow(10, Math.floor(Math.log(axis.delta / timeUnitSize.year) / Math.LN10));
var norm = (axis.delta / timeUnitSize.year) / magn;
if (norm < 1.5)
size = 1;
else if (norm < 3)
size = 2;
else if (norm < 7.5)
size = 5;
else
size = 10;
size *= magn;
size *= magn;
}
// minimum size for years is 1
if (size < 1)
size = 1;
}
axis.tickSize = opts.tickSize || [size, unit];
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment