Skip to content

Commit 5233664

Browse files
committed
handle monthly tickformat with weekly auto dtick - issue 5207
1 parent 4d821e3 commit 5233664

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

src/plots/cartesian/axes.js

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -634,6 +634,7 @@ axes.calcTicks = function calcTicks(ax, opts) {
634634
var definedDelta;
635635
if(isPeriod && tickformat) {
636636
var noDtick = ax._dtickInit !== ax.dtick;
637+
var prevDtick = ax.dtick;
637638
if(
638639
!(/%[fLQsSMX]/.test(tickformat))
639640
// %f: microseconds as a decimal number [000000, 999999]
@@ -706,11 +707,16 @@ axes.calcTicks = function calcTicks(ax, opts) {
706707
) ax.dtick = 'M12';
707708
}
708709
}
710+
711+
if(prevDtick !== ax.dtick) {
712+
// move tick0 back
713+
ax.tick0 = axes.tickIncrement(ax.tick0, prevDtick, !axrev, ax.calendar);
714+
715+
// redo first tick
716+
ax._tmin = axes.tickFirst(ax, opts);
717+
}
709718
}
710719

711-
var maxTicks = Math.max(1000, ax._length || 0);
712-
var tickVals = [];
713-
var xPrevious = null;
714720
var x = ax._tmin;
715721

716722
if(ax.rangebreaks && ax._tick0Init !== ax.tick0) {
@@ -726,6 +732,9 @@ axes.calcTicks = function calcTicks(ax, opts) {
726732
x = axes.tickIncrement(x, ax.dtick, !axrev, ax.calendar);
727733
}
728734

735+
var maxTicks = Math.max(1000, ax._length || 0);
736+
var tickVals = [];
737+
var xPrevious = null;
729738
for(;
730739
(axrev) ? (x >= endTick) : (x <= endTick);
731740
x = axes.tickIncrement(x, ax.dtick, axrev, ax.calendar)

0 commit comments

Comments
 (0)