From e4142d8d7b668c27eaa1c61f7bb52b59fba7420f Mon Sep 17 00:00:00 2001 From: Jukka Kurkela Date: Sat, 3 Apr 2021 15:01:48 +0300 Subject: [PATCH] Logarithmic: handle null/NaN values (#8793) --- src/scales/scale.logarithmic.js | 3 ++ .../fixtures/scale.logarithmic/null-values.js | 49 ++++++++++++++++++ .../scale.logarithmic/null-values.png | Bin 0 -> 31810 bytes test/specs/scale.logarithmic.tests.js | 2 + 4 files changed, 54 insertions(+) create mode 100644 test/fixtures/scale.logarithmic/null-values.js create mode 100644 test/fixtures/scale.logarithmic/null-values.png diff --git a/src/scales/scale.logarithmic.js b/src/scales/scale.logarithmic.js index 2223f1cff88..99e83241485 100644 --- a/src/scales/scale.logarithmic.js +++ b/src/scales/scale.logarithmic.js @@ -170,6 +170,9 @@ export default class LogarithmicScale extends Scale { if (value === undefined || value === 0) { value = me.min; } + if (value === null || isNaN(value)) { + return NaN; + } return me.getPixelForDecimal(value === me.min ? 0 : (log10(value) - me._startValue) / me._valueRange); diff --git a/test/fixtures/scale.logarithmic/null-values.js b/test/fixtures/scale.logarithmic/null-values.js new file mode 100644 index 00000000000..a9450f0d623 --- /dev/null +++ b/test/fixtures/scale.logarithmic/null-values.js @@ -0,0 +1,49 @@ +module.exports = { + config: { + type: 'line', + data: { + labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'], + datasets: [{ + backgroundColor: 'red', + borderColor: 'red', + fill: false, + data: [ + 150, + null, + 1500, + 200, + 9000, + 3000, + 8888 + ], + spanGaps: true + }, { + backgroundColor: 'blue', + borderColor: 'blue', + fill: false, + data: [ + 1000, + 5500, + 800, + 7777, + null, + 6666, + 5555 + ], + spanGaps: false + }] + }, + options: { + responsive: true, + scales: { + x: { + display: false, + }, + y: { + display: false, + type: 'logarithmic', + } + } + } + } +}; diff --git a/test/fixtures/scale.logarithmic/null-values.png b/test/fixtures/scale.logarithmic/null-values.png new file mode 100644 index 0000000000000000000000000000000000000000..d75929610c1f024b1c91c640f5d0463bc84a3cb6 GIT binary patch literal 31810 zcmYgXcQn=i|9{`>;@T^l?2#>dU)dvMZ#R+b5g8fxQb|IQJtJF)Ze(7mtU_dmOUT}P z-QU~iobNfmzb@z8^SZC`d_AAf$9Tn=80k=uvXBA*K%u9rX$k;P@J}cJCjvkALw=tE z04JcQscs(PxSmVa7&NkvS1Y29E6l!S-jZ6Txl(v-NK5yPzIoGYLHgoBiaX{{0*jXm zd7rL|z74$dggTUrOaGEP_~OBN{+8oI%+bV_!q!AO=Frh|Lo%*1 zg|1^t9$soV42ni@f*<^pkZk#+&bj~oA=Sp-)j*oz^kcHgEIC%8XjAIvK*2R@4R`RX zhNMu+bOLe0>yUHe5FjM2BcGozX1hKQt_he7M37Yypb-U7xcoX%I7^6mx`G^Yl@)}p z^9cz!CJ7FT{0r;EU=N9+ezo%e8Ms&;dn#}WbJTu~C4W0HW|^!a(m972>~Qi}RHrYx zG|>Gdw>V!5kYH<*RJxib6B-WihwKS&Hg!&7DX`oQC97E;8Zmavrup`CJwM6 zdh87>Pjl7z`wr3(jIxNQB9!tBD)1BcZ;D)%27(yQkKPssN7L8B&Jkm6hedY1Vy5&R zl;03Tr8sfhfjA@NoVyWVDbpwnMTLa_w?#})NGuh>mcCG6OBToH%WmXPF7vM62qY55 z_KB!%s2Hb?Q;bPp{zn6lllvNyU+pWv)@F2y;HxB+zaDby%hCnW7DWyeeTVy19sVE0 zpft!L>r@yQj+2jxW`aVuf^xz=|A+UF~aOpjxXXI%kQA#<)>#rg&$&f*Py3x15 zB#Cp`A*;?8EZSC}rO0p2vxzf}e|AnPTn(-TdWl9bNeqD%;IBUhB8FETnVZ-3_w zXH|nz8WTnmDa+bCZ0g99vSEN=kB>w|u0ke@8@H{Fo9;O;qL@iCH2}lyHz~RrhAm}YeqSjCSWC0_EWJaxv8+1^ z3v`b6^5AMow~G?z#B zmhx3gkB65mvKhe+4chZRh*WAm)Ckg`@sno>F%B@+R2z^x_7~sO1_sIWCHbizT!U7d zVk%J)tB^@s0sm@{3YoX>DT@x%#MVIUie)}Y9nVLPW-oPy>GWkx zfalvrv;8ulNvf=+1KAmQO$!*LvXzvjE>nSCe%U|7FN;}SQY>G?HBC0la}%=#I@cN6 z`tbFYSuzSzZV^) ZbuO+AL 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 oLr2;?B4L5*6<|q_Yx`>#G->E2ic; z&m#-k)L4}4c-VOiNoDGe!@Xux0YkGJdI6}t{t|WEBLJ)G-q8de_PvB+2?HkC^#1RX z{+w<{0B@Q)&=_OyfUn`a@4=6GUhSx8ZzRzLX0bXIq1xEI3MxUOc#Xlt8BVS~x4iMv z%FPMYnxD15E1=3d&EG28gqHAMo<7Rr>tR%Z-QX&W;IUYe_Hq1X}oIiLGG?1a3EtMG& z;J`C;pro5yYfIl0FEycz3v8ebvkIxrZrh{@1viyM2t|O1f;X0a~0YGe0g*|B)BCW(R*d4n38A7pl>qk0Dj(>IInIuvl zLLlMJQ+2JD9!+85r!eL!U&;p|zy&4y(Eot|p2I85pq2=h6RxrGKS@W2rCrADgJ>lP z?tgC>=uz>IRJ4LpY6pNzE`?(+;RoA;u5v6g$thT${u#mBlNGpG~gn zixc<|0!_krolebA#ATI?_IVN^{PzcDUG;*5phRHny$NcP(Bxk7blQ)oOM#rK44mR* zaDe+cYlEZ;6L`(qqOq6hhjX#a%P2=M9`W`B3Z$bjMR(JWn91m%Y-$BpV8_`rh9T_b zTc1A*o7(h~z7+J@_Zr>A5fC1-K3z zH49tmRmi=Xy$juR_@Op#X&^R!b2z*`uPW;Az(|6c1XKj06aPgd$sXMPyw7BMWLSp0 zIvccnONZ)YO03<8rZ5-0bK{W^B8yqySEjbjek$zanl;fYGRjiwXBw_99&tSD`8+0 ze-3bU+$lXx?R+|D@5sP&cJC^T3_I11fuJZUB9vHFo96P!I8O)`OJTZ_`AXOy_dCeo zdU}eM?|bRiliNx2Ic48~;%zagP!*4P`&#n0=@h`aY9D}hH+fNnoD)%@yxlp=#jZD> zZVhQ4o*-ry-l$9f7IR#(F9t!DA}bs5uSiy@dzTDs$t8)Vk~R=65z(h~MemMy7QE^w z#|~(G`FfVTs=eh+G&h~q78C;>$SSX&0pG5)GBv)&Qvw;r|UkP4EId)<{2<8zqxPZ7&P}|GoKszU>R!9lFHm>*1ELEYyIG1 z!Apbn<7IsNUdDyxiXe{RrB?xl63v5Fo!#&l-ffLW1`bNIOPPVd32yf(Zp8yP^oC7f z7qM~3BabwqJ1BMZ)72Rkxn+U#X8#Lodu9cdJMk3i11)Ge_C<73%DlB zwSZDwpDJ>_Q0X4(5gy?v+c${FYv$>YLps%t+UFZ%zr#^}@IOCE=3YMJ53cfTRrPGT zqOH+cHu|>*0lOKFdQ&YV>*^1c2aZ2$D#rH>z%+Aud0tM_L>4nQL-^`d&8iXk-(p1F zH+}g)+w^GpQXq5-vY~nL^iy*_fe{O>+v0?COz22@v?Q_R6Sn6JJARoCatl}$zMqqI z3kV2#)Y}oh`e~Fb>BSXHQ9pSnv5*Q-=E9kZ8LD5m_1(}$;ZW0q&4|BTgbS;BkzFq^Re-+^)t7TqR1f}BknSzn|keU~KiFkm_3 z2);)Uy8PkGL%Z(BIoNEvMBmI7%~aA;kS})a=LY7qcCg&aSG|*v#e2KukkJkAB;`Ox~CZIJI?Lq;>O{%kRg~hRJT^21 z^DvByF1wT=c7lO4MtVIjNMU$q7Trtv@Dz9-W^>Zl>6y0irM26pbpj!XL#5V3!LsF# zC144(^!Ma|mp-AkJ%2I>ST)$sj3i17%I51c%ta3K8d z#^LOMT^Rvc9nntNgG^Frg|2zw0iq?XWuQr&B9k(q* zzL&O!CXr1Xz*{}(2Qwh_5?xkG@?T6{foNNkj9CZY?1V(6-AW~!PQkzMO-!^Db3H;F zw}{1DWx!1N?rW@eGVhBaEny&~XXh!vx3`nxb&hFYss7E={<#kXiFarhOrT2IpTNu1 z6=)!P?}tTEX_`BNvuD_zEl2Q7zhVi?w232tgv#O$Mhx|O)IUhQnwKG83rCq&kXcF%w}rW zO`JxjgDe(|sL&Pv_Zd5n2{xU9lt#FDGOJict&2S0_GVy=9c1##5_-MF3?r4z+qt^dB1g^TALoUMvYFnRs%{j ztid(lyZ_SBCq#I?0-*(HBPEKq?WcC5i*>AQpZ-VU2C(YoNvwx*kAnbSD|PN)0)clG z?+XA6+rOG)l@(B}*IZcU{U0Cc2|i$p1)y=hFAn6H4)+}a?)EPeYt6BaK>mCV%b}06 zW(Y{H+JL5bfLi>0Oz@e8;TmA0njQX1qh})j_ZU0uqfn@2d`7)~_x_f3%b^#}{6K`N;m*ou|7XzI_WU-@iO;rahVhMRKI4S+#&uomJ=NqVl=_28E3QS=y0b z9FL%?q1hv_J^s$u7e%0zfKW2uD=1un@gI02UmOe!G5?P&+35+~RCys$Pa`^`D~`v@ zMSrWJcrTR8{HJR2wdxEG%>QOAcVb>Kj3P%MXehiCsr_&5m*c z`QVQ6e{1hJ5_X8fx4$NhDJWMQF!wyplJ=AMj|C>;&=>eR!EWQ>+W|@-OC@*8e=pNg3C6PYsSnUzptPdz1kLxar{>uR==R7T#Jxc?Fy{hTOqSgv#A*l(&0f4(umt&Ge zGF|}wTJ5qA8!Ii<==_~bkpRCt!R!s6EtmeEpW?YK;1>JhBG6y1N?8KJ^SJ%ZErC?ImhE%=&{VVl!eJu?S{pDWXSpX7>S2q2W{Y%_C0OCj;va|h5 zOfoo2%X@1xlJ!?Sd12tM@7&<E;9nH+kE}80as#7Eb`4!*1si zm`Z&SVFvt_Gn#?^-^HBg1eDK|`t|(#S1MvWqX2{bs~mBF^7GEYpB(