From 5cb5cd160e2ae2e3225fac716b7e0eeb4aff444d Mon Sep 17 00:00:00 2001 From: Emily KL <4672118+emilykl@users.noreply.github.com> Date: Tue, 6 Jan 2026 16:54:53 -0500 Subject: [PATCH 1/4] run formatter --- src/plots/cartesian/tick_value_defaults.js | 28 +++++++++------------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/src/plots/cartesian/tick_value_defaults.js b/src/plots/cartesian/tick_value_defaults.js index 68b9207ee62..9b3b8ac0a2d 100644 --- a/src/plots/cartesian/tick_value_defaults.js +++ b/src/plots/cartesian/tick_value_defaults.js @@ -6,7 +6,7 @@ var isTypedArraySpec = require('../../lib/array').isTypedArraySpec; var decodeTypedArraySpec = require('../../lib/array').decodeTypedArraySpec; module.exports = function handleTickValueDefaults(containerIn, containerOut, coerce, axType, opts) { - if(!opts) opts = {}; + if (!opts) opts = {}; var isMinor = opts.isMinor; var cIn = isMinor ? containerIn.minor || {} : containerIn; var cOut = isMinor ? containerOut.minor : containerOut; @@ -14,35 +14,29 @@ module.exports = function handleTickValueDefaults(containerIn, containerOut, coe function readInput(attr) { var v = cIn[attr]; - if(isTypedArraySpec(v)) v = decodeTypedArraySpec(v); + if (isTypedArraySpec(v)) v = decodeTypedArraySpec(v); - return ( - v !== undefined - ) ? v : (cOut._template || {})[attr]; + return v !== undefined ? v : (cOut._template || {})[attr]; } var _tick0 = readInput('tick0'); var _dtick = readInput('dtick'); var _tickvals = readInput('tickvals'); - var tickmodeDefault = isArrayOrTypedArray(_tickvals) ? 'array' : - _dtick ? 'linear' : - 'auto'; + var tickmodeDefault = isArrayOrTypedArray(_tickvals) ? 'array' : _dtick ? 'linear' : 'auto'; var tickmode = coerce(prefix + 'tickmode', tickmodeDefault); - if(tickmode === 'auto' || tickmode === 'sync') { + if (tickmode === 'auto' || tickmode === 'sync') { coerce(prefix + 'nticks'); - } else if(tickmode === 'linear') { + } else if (tickmode === 'linear') { // dtick is usually a positive number, but there are some // special strings available for log or date axes // tick0 also has special logic - var dtick = cOut.dtick = cleanTicks.dtick( - _dtick, axType); - cOut.tick0 = cleanTicks.tick0( - _tick0, axType, containerOut.calendar, dtick); - } else if(axType !== 'multicategory') { + var dtick = (cOut.dtick = cleanTicks.dtick(_dtick, axType)); + cOut.tick0 = cleanTicks.tick0(_tick0, axType, containerOut.calendar, dtick); + } else if (axType !== 'multicategory') { var tickvals = coerce(prefix + 'tickvals'); - if(tickvals === undefined) cOut.tickmode = 'auto'; - else if(!isMinor) coerce('ticktext'); + if (tickvals === undefined) cOut.tickmode = 'auto'; + else if (!isMinor) coerce('ticktext'); } }; From 2ff278a9c922c9d06a42573dee6fd9bf8c3d0656 Mon Sep 17 00:00:00 2001 From: Emily KL <4672118+emilykl@users.noreply.github.com> Date: Tue, 6 Jan 2026 17:08:45 -0500 Subject: [PATCH 2/4] set default tickmode to 'sync' when axis is overlaying --- src/plots/cartesian/tick_value_defaults.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/plots/cartesian/tick_value_defaults.js b/src/plots/cartesian/tick_value_defaults.js index 9b3b8ac0a2d..2a2e6493fcc 100644 --- a/src/plots/cartesian/tick_value_defaults.js +++ b/src/plots/cartesian/tick_value_defaults.js @@ -22,8 +22,18 @@ module.exports = function handleTickValueDefaults(containerIn, containerOut, coe var _tick0 = readInput('tick0'); var _dtick = readInput('dtick'); var _tickvals = readInput('tickvals'); + var _overlaying = readInput('overlaying'); - var tickmodeDefault = isArrayOrTypedArray(_tickvals) ? 'array' : _dtick ? 'linear' : 'auto'; + var tickmodeDefault; + if (isArrayOrTypedArray(_tickvals)) { + tickmodeDefault = 'array'; + } else if (_dtick) { + tickmodeDefault = 'linear'; + } else if (_overlaying) { + tickmodeDefault = 'sync'; + } else { + tickmodeDefault = 'auto'; + } var tickmode = coerce(prefix + 'tickmode', tickmodeDefault); if (tickmode === 'auto' || tickmode === 'sync') { From 2be45e2ee4f40349d5789857a4c3c146664e3841 Mon Sep 17 00:00:00 2001 From: Emily KL <4672118+emilykl@users.noreply.github.com> Date: Wed, 7 Jan 2026 14:24:30 -0500 Subject: [PATCH 3/4] update image baselines --- test/image/baselines/20.png | Bin 94220 -> 93679 bytes .../baselines/autorange-tozero-rangemode.png | Bin 26563 -> 28278 bytes .../baselines/candlestick_double-y-axis.png | Bin 84950 -> 84347 bytes .../candlestick_rangeslider_thai.png | Bin 86621 -> 86278 bytes .../baselines/gl2d_multiple-traces-axes.png | Bin 25553 -> 25574 bytes .../image/baselines/insiderange-x-multi-y.png | Bin 79838 -> 80119 bytes .../image/baselines/insiderange-y-multi-x.png | Bin 87437 -> 87407 bytes .../legend_scroll_beyond_plotarea.png | Bin 45664 -> 45048 bytes test/image/baselines/legend_visibility.png | Bin 30215 -> 32104 bytes test/image/baselines/long_axis_labels.png | Bin 58412 -> 59473 bytes test/image/baselines/map_0.png | Bin 74925 -> 74939 bytes test/image/baselines/map_angles.png | Bin 136500 -> 136341 bytes test/image/baselines/map_bubbles-text.png | Bin 72252 -> 72245 bytes test/image/baselines/map_bubbles.png | Bin 66896 -> 66941 bytes test/image/baselines/map_carto-style.png | Bin 74315 -> 74327 bytes test/image/baselines/map_carto-text.png | Bin 72980 -> 72990 bytes .../baselines/map_choropleth-multiple.png | Bin 134553 -> 134540 bytes .../baselines/map_choropleth-raw-geojson.png | Bin 36590 -> 36641 bytes test/image/baselines/map_connectgaps.png | Bin 62205 -> 62214 bytes test/image/baselines/map_density-multiple.png | Bin 78775 -> 78645 bytes .../baselines/map_density-multiple_legend.png | Bin 71524 -> 71510 bytes test/image/baselines/map_density0.png | Bin 52033 -> 52036 bytes .../baselines/map_geojson-attributes.png | Bin 112657 -> 112163 bytes test/image/baselines/map_layers.png | Bin 264133 -> 263918 bytes test/image/baselines/map_symbol-text.png | Bin 79315 -> 79389 bytes .../baselines/mult-yaxes-manual-shift.png | Bin 57266 -> 57381 bytes test/image/baselines/mult-yaxes-redraw.png | Bin 48846 -> 48923 bytes test/image/baselines/mult-yaxes-simple.png | Bin 68217 -> 68275 bytes .../baselines/mult-yaxes-subplots-stacked.png | Bin 56140 -> 54018 bytes test/image/baselines/multicategory_series.png | Bin 34591 -> 33300 bytes test/image/baselines/multiple_axes_double.png | Bin 38444 -> 38506 bytes .../baselines/multiple_axes_multiple.png | Bin 49752 -> 49754 bytes .../image/baselines/overlaying-axis-lines.png | Bin 33625 -> 33634 bytes .../baselines/range_slider_axes_double.png | Bin 37242 -> 37314 bytes .../baselines/range_slider_legend_left.png | Bin 42746 -> 42179 bytes .../baselines/shapes_layer_below_traces.png | Bin 28866 -> 27857 bytes .../baselines/ticklabelposition-overlay.png | Bin 18118 -> 18108 bytes .../baselines/ticklabelposition-overlay2.png | Bin 16107 -> 16065 bytes test/image/baselines/yaxis-over-yaxis2.png | Bin 25905 -> 27329 bytes ...-subplots-multiple-traces-main-subplot.png | Bin 39343 -> 39335 bytes ...subplots-multiple-traces-main-subplot2.png | Bin 38994 -> 38963 bytes ...d-subplots-multiple-traces-one-subplot.png | Bin 49146 -> 49108 bytes .../baselines/zorder-overlayed-subplots.png | Bin 36772 -> 36731 bytes .../baselines/zzz_zerolinelayer_above.png | Bin 27743 -> 27541 bytes .../baselines/zzz_zerolinelayer_below.png | Bin 28391 -> 28209 bytes 45 files changed, 0 insertions(+), 0 deletions(-) diff --git a/test/image/baselines/20.png b/test/image/baselines/20.png index 99c40ea0507a88c0ceae570f5c990ff00265d908..9ac360bed5188e2168aaf30c5fd22a7ba2f613d4 100644 GIT binary patch literal 93679 zcmdSBRa9MF(l&~_6I?@ZC%C&iBoH822(B9^xI?hu1eXvjxNY3sAq3k%aDr^y?O(k8 z_4vE{?eCnsGsd~d1!1kZYF5=OdFq)&YN*L$qLHG(z`$TCD#&QTz`#L)fA3I`fd3JV zHOq&Ap@vbEk$mH6bdZJkjzEuW;E4whjyeBBVAge>NnmJTOq=@$kCtD}g#G$a%Z6ni z3g+8Bcofi}
1a
znn04xXUF^ZMesbDk^Z@-e~2K#M=i0Qjrm!|koI|_|CEaw*nunN|NZItSAljC0llJR
zFCv>25F!Fx;Z{~wt{<*etG%xrHir@!mcwXhXeNu)siH}F(Jn79^VJy7$@57If2+_{
zIV=mkZ}%Y~<98VSc{V-tmk1w#?L_6tRs&0a6o#`_ya>Z2GqJJx++e>%AHzUTkL0pF
zDmhnSsF^Q=s<}Z6A_`?uMoI)*4%KKB0SjD5!T=k`1K!@Wf)iKf#XpCIN6Pg&+h*z&
zeTAa{;g;gC-An*m#t3O}0FP^^1^_C>0Sw}Y3QMo#=jZ3- ^H~%N7!4(MY(S8!*qv8w@7z`ba#iKfP{c_cXxw;G|~+sAQD4^lr$)kLpVso
zP{II1ybt@tckgrd`MrPpeB_=xR$S{^>q05a3$Lavr&h`>)l{1aZi;2gV~7wdw=kuV
zTx|=($D3zyKt($6`gnh+kX04X*Yd#^D;*Omi7ENw)>|;$Is@QF;__?o*E)7RZjb+6
zNkFPp;Eo8Za_P;_3GKuZwzU7zE`78TYJU}66<3yqv939Ef}s|!<%y-Np9ZnkcevgN
z#QxkeiUggPin5sT^6~so8AE7k#DfgA@kgX{3HwQkhiyS)Bug4*~C!kZ$35qQ&1d4~tHB0ixJ9gI3J92lCvj~?e@6&cZ_j!6g^6XtW
z$;*#PL|^i)>_+g(ETZ91`pviV2(?Efvs(SkgL9}&vNJ9;~t={T!P?uDzJ
zs)%$E+Hc|DIp7er96@PQg|Am0S9V?Uv6V8C``dNyJoj1Xen0doUhl2JMk(UQ7g?$=
z^ks>9TK{XcpLNWmEg1KYNs!$Oc3s@8M9S=e%IWsg9d*r(AFx^K$)X5$X}!3G1^c@}r$0JnlAvc)QhL>Y*;6LCN}%RQ`t
z^-OX22@nDrr
DJ&(
zfiSDzlOfxB`_>f;%EKu|7X8vIW87Em?2CJ!cH_T;{B!X!`jR33XRZMZD1b>i<0}
zYW4c=#u^AXAHiERy^(1o?elDk_^Zx;SZ%%;dJJf22U^vWZg_1Db=e1+i|QX;ucr)O
zBpiSD#t!lJE~vU&<#d?Wa0g*yM|St0qymG*NZ64*DQRtKg+`e^h{z|LorWK>q0MSe
zlp@SyK+B`4Ad8#`j*
oi}2=Q$nXrh(Ec
z*Ff%c4bW&%Em=*|4P;)S8iB|)M8;iMQNTCiw`kJa^Qk#S^54*T&6JIr7QUFhY;T4v
z;I%!~;AP&8NOFi$7G8%|T<=|_O@Ghf4p>KTNI-EmLENUF>-&WQ{S|7Fti+hyRC~pV
zBS^0ZrzrUH^46sNO^7C*-8xUXv4DF1>&P@}ztCS4JzanB(?`VigzBqv!(RuJy9aq+
zIHPojDxUm~x3*SjG$z4@y+0;82?37J!jcRc^((
rW9vx6J5D@=rr-A@Jo=bV-&E;286OFTCoV}qUlfga
zkw4g^**vEA>dWq15Cfq6;{Hp}dlOm^L