From ec39f94fc0dabc09fd9faaffc4dc180a5ce4d39d Mon Sep 17 00:00:00 2001 From: Sriman Selvakumaran Date: Sun, 26 Jul 2026 22:36:11 -0700 Subject: [PATCH 01/17] Fix pyplot axes state and image ownership --- ...04_01-ordinal-14-raw-36-current-figure.png | Bin 0 -> 44028 bytes ...-ordinal-08-raw-23-source-figure-after.png | Bin 0 -> 213626 bytes ...ordinal-08-raw-23-source-figure-before.png | Bin 0 -> 213626 bytes .../04_07-ordinal-08-raw-23-target-figure.png | Bin 0 -> 161786 bytes ...04_10-ordinal-04-raw-14-current-figure.png | Bin 0 -> 65675 bytes artifacts/pdsh-shim-cells/capture_cells.py | 165 ++++++++++++++++++ artifacts/pdsh-shim-cells/provenance.json | 87 +++++++++ python/xy/pyplot/__init__.py | 2 +- python/xy/pyplot/_artists.py | 8 +- python/xy/pyplot/_axes.py | 77 +++++++- python/xy/pyplot/_mplfig.py | 89 ++++++++-- spec/matplotlib/compat-changelog.md | 11 ++ spec/matplotlib/compat.md | 4 +- tests/pyplot/test_artist_mutations.py | 34 ++++ tests/pyplot/test_figure_state.py | 21 ++- tests/pyplot/test_pyplot_state_management.py | 15 ++ 16 files changed, 480 insertions(+), 33 deletions(-) create mode 100644 artifacts/pdsh-shim-cells/04_01-ordinal-14-raw-36-current-figure.png create mode 100644 artifacts/pdsh-shim-cells/04_07-ordinal-08-raw-23-source-figure-after.png create mode 100644 artifacts/pdsh-shim-cells/04_07-ordinal-08-raw-23-source-figure-before.png create mode 100644 artifacts/pdsh-shim-cells/04_07-ordinal-08-raw-23-target-figure.png create mode 100644 artifacts/pdsh-shim-cells/04_10-ordinal-04-raw-14-current-figure.png create mode 100644 artifacts/pdsh-shim-cells/capture_cells.py create mode 100644 artifacts/pdsh-shim-cells/provenance.json diff --git a/artifacts/pdsh-shim-cells/04_01-ordinal-14-raw-36-current-figure.png b/artifacts/pdsh-shim-cells/04_01-ordinal-14-raw-36-current-figure.png new file mode 100644 index 0000000000000000000000000000000000000000..dff585cdc9d2de96d073b59cf65d516bea30c885 GIT binary patch literal 44028 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%0A5m6tP9N1iN6l2V(!P&fPq+*PPb_L8Dg zDx46!Y*Ky%+Ts)T_!1seSRF)kQeY&jnVN78qF}XVJ5$0y(lb+xcV+2=|4yv|OryYP z*Mdi}y0$?bvexJQq4JQdB>l{RQYKl~c(gpH0HaB)Y=LD3l|E#ESbHoMG2L$_@xeGe zD~c985ODH0@N&^eE{XwX8EOhF~kRqvir5$O5EJJZBb} zWpWVxt0yTh*isLbG8xLCEoFMpOypkb#ll@_0=Hybl|}3MHWOCd2t}V9V|va*P&M`a zqCAYV+Qx8q1Qpv9I=mK?RO)*|y)X*;lX~Y%XNOf}@Ro-wUGka5Jh21}{oe zpg`BzxWOodTy2aZDiwZQ%4~zFTN~z|*0N<_s^Dsl*ETn^F^CZ9CBAdG;497yKNqZ` zs%$(>u3@*3#yk&--mSKj5x`fVauoDiMoQL=lfjyY6b?1Q3fFHpa zGpF-2)`dvC zB(>61-{#aUIKhSZa1J0PlfII=C@6At-fY_Q7Xed=?UrHi$#14?g(d zk45a~_Sik4D^&vS5N_an9XDVM{zlfsy8}20K!pq`ZhjSzk*>h!bq1J96YoS4BX=`+ zpR^j3!S{=zbTT-UB;R9$D}0SMRsv-bs6?Y_h9#CvS)qdGoe*@Il&_?Nna&I09Xpp( z(OUq^!yJfbG3f_p z8e{Gt8gY}(kslc&I%DJ`QShTQ0Q0$NUqFP~WA(ypxlHbolQhmrxIJ}jiY3@Cnt-s8 zY=7Qi*#6JWqx%!Q?<9?YK||p<53oW;&Omkq<5x$YVs+crwd>z)Dc zI+afQWa3gB$plHbx%vGGF{cHp_EzC`|9ZMqRCaT_0Lz23N8|-?QX(gRj10BK{NT#=GO$BdVc7)es6Yg+n`v z<@PJrxba^&YXt{f5OV+XP;Tm#5))*g=+}>G+rb*2Gmkt|PWtjRuSY)n z6byV_gb_<XK?K>jD?!GYp}HQcMD6$sr+U|n^fhiy4onpp;)OorgP@28Z9B|RsTMs!d-n;5)gQGpwg1OSgTI)p>dJCAUCXXyo*dVAgJb)qxt z*a$QD_-fzSsdV01sK*H1GYL0NF59GYU4j;OApBL*IBpMy>i}EoYj&x@RjJt;IM!d= zxIynIB|a(zz9FpZV@}}E1d#cW9@Y3^>;An9v)H7=zXN-mux1agCOlrdX#M)~Tn2V7 z3WLqe@OZHsH*MNV;iN5YZX8Y>p)*J9b`_F9VYryKYTzI!rsxbzrpi$PebkF4C{a|L z0*zL{534h08B=u=x2s{QPg%)WjAH?V+KBb>>u7HFQc-YRlnsIkKUK9hd)*D?pe+U5 zUuBLaUGA*aww;aK9F8X=AmucuWf12%Aze|paA9jl$6qVlhc>}f8Jy9E)3&_Gsn$*0 zK#Z;zRRfb1Q)?ZvJz+KuOuza3KuTgeP9+3w_TH~`-jBSGtj(J@M@B0vTY`lOP_+Kd zUyJ=;O~W7`?9s3J{@c9d(}Rd85$<)B0P(+J@q&qgM2CMmRSPIBjJyK@l7>eyW;z2S z0-?A7!<%MUyvr@#2@>Z7u9Ed-Ny@twtH#v4UyWcgQW9s zD^xfr5eRv)=xEw;)F*}37(Q2XL_M6Ev~5iQ<^_#G-e_%p7n1Ud{XdrIaWWkYo5Ss? zl;u~-@UhR-rS7wOakP*q=jsYhKW}}v0*8hIoi8IbIwWFYURJXBTdGPKCp(u+2)3{`6GS6t2{J}qUEBG*l-h0cvo*2ysPw>D?Z zgndB%i`M_X)(?)_1x`#7!Vz{nm2+3!7AV!=2hN|A8iq@eoyy?YN3s81$yagbu<{C9 z0p-~HKKlSjysun9R@DRJcut&q2Q!5ZW|oh6`tYKxOfvItnf;_nkXt9d`&Pa)jT z9RdHc_HA%POYmm5c5jxQjNfkdJtBn|y+Q1F!KAYv)s6wRExx+axVMY=qg)y&cB{@-_oo zCZrH&_W#hf;q>pG_xt^G#k$MmfMkp`Tqw{X-xxlAJUMQ&0WuvYusOhK)$2X8JLrd# z653Orpx|z=0vy?Ksxl0Q>bbkd>5e17sy3NbH#a>s_Cxkh2XbVxGu72{81>|_8Z{uM zIDri8?Ld3H$JCN*#aZ6Zq0(WQe zAp7$FJaRrC9T|a&Q_B-L2Cw=33cVg`?@JT@ux{Nty|}XF%m%$!`&KCs+oAZfl^d)9 z7U$< z9LO*X_kx{_X@|Av@9qxUw3>$ZbbkPX4(w^3Vi2!ufHVSP1c>(gIi=CL@+ASt44`zhXQH!w)f#0QEfq03_rE z4*LEi&O3w6IE*+k(=yF5PUz(XD^3X;JOZ!_fH_$4=zT8cL-yaeARP#RuR2@_jx8`k z6vi%gLj@S(hP!`#PVW70RRLr6@d*Yq0Fb^E7{G|F8aQ$o!p@sq)Qi+wWIm!V(mxx$(Z|1@w9Ntd9IWVVe64!%>;0j;&jJ zcZoemYLe&{$P~#UENLNRP^1Lcrh){^;=_7S-XXKj)8pn`*aW-?p7OtOKw1r$JVYFd z%(qy;y!mW?GF)c=&%sKv;Rd+L^_aoLa=GRDMQ(Nm=Ur0D579U7DAC8>>>O)FmE0H2kJ&0^?gLcp9krvd?k*sOl0GyLj27 zu=f8dVKX2h{wZOE_RTZ77-k;53$ch)(>rVk-rh)8WH2 z@EjcnpbP}3fv;fUhkd}}i>(xP7e|2xhtz+dZgs7Z41HC2#?=bUafI7w76@7^*=(o} z3ZcfAU(%6{VCG9e>pT5KyNPWn*a_vHv=5#Ed8kMIeo)aQC47%t)j{$jtm8ZGADSt4 zbl1RFS3KA<4Ji*$s=NwZO-xO#r752P7utd~ZLBlyz&mrY6JY=-q>ey1tq1mrBJd|D zZ(@-?P!&CY1FiE89*Ker#Z@e<)u^KoAp(V%CUN>VYr?yo9{kFpyxr880JuYeHquZM zqxD^$Ck;Pr;(ia2m>CkF@Y$f^efRhD=hkYKyXwS~v8sz@SQH-g1t(*`4|EZXi6rN(6?q2w%= zrT3_dbD2ce{W=gIyxX{%Jk*$zG#&6A@%O*qt5yK>ND?U$0f~*~12(XdC019@W8s&_ zJF$ij@857^7K63d&PJL82DUX*eVvlf%Yto9E+A55lCVH`epd?1Af#U|S%64CR|F3m zvt54*9+Z$TIzQL4pOoWrJQe)JB)^j!!D)@`yWARG!TSFWEnprN<@$>Nh#;b%_`VqP zU#x$?y$KGQ$ZHi+caLd|#A6c;urI=rgXtR;`;Vt9TfaNmkIPyGUd_^(GXy2$x4Mps zSsZCjT}so#*(F#l?sWxRv7NtN$(Al z1M$^g1OfYbm|cfwW9MnT*H<`#?xb;uzJMK@PC4OS1L0oB1ca*4?bwt6P4z$|1oWnG zIdNt`TZAutU^VKTU1_)e1Ig8Q{5x?joxNSK18o)Iz4k1ukG67tDPl+C4M5ucQT~#f zds*1r(DgyB5r;LsZUn=eH>= zo;lN2pW0@<*nbBqBpTOL*K28CB4o>9^|!C$I@NOMtOGca5P_^=v^aj7)e6Iim_c2v ze`&xDpuuMdNiJ`|9K+#sC!x(0YD1tsfH#blxJpGm>=WG93^#~-!bmc`3u1nRG*Eo- z9f+DDoolLaz{mgnuMuG)Tyfb>@_ue>{0NqI6|zh*ZW>~%vsJ#OHFCq%U1B?@GVDZ< z<6vu&>}e+uh`)LJHOBEv0J7>Q|YzL6_Wu zqK#513GY9ci!1ILw4El<=qms%-c!mb4ZQ&kW2$rju1nab02c(XPpn-9kCt~Dpf3$> z23qK#^#%DVSXvVHK5h(hyd3aa25^7|sDTB0F6O5Y;A@B~vDResLE#6pEPU+OkT0z3 z@4K|Zm;gv{DqOV8-kE`j`BV_B_m{A+dog#z!HqnWb^h z!twPu1sduvfjfCDO!>y3VcJiu2!!lJXR|eknF4P@_R^2(xr5(jll@TQUdi4-GKm~o zo5mog{;4|`00ct?H3b;!e&5q;U`lWe%&-?OpJwbux{YBl-!O=%2MZm|f6|L__j9G8 zH{gU;i5%U8VeuRT9}^2sOb z5AJ@uYYY}IMf3#`eOXOkhN^uagaJQhhAb30igCz)N(~kXfZOx)A0;k67D8YrjlE!g z5kY@AcoP~iwr)W34#JMT4s-RUbqq37K=FyDJY7qz7!oxrZ?_=2KhX_itjS8O9^y=> zIZJPH?M3+)-+}jV^!>19I*1F@(_jRIY)9J$%&?*O`PG}{6ca|a8@@#YCr2lA;oCFt z-6a2bSbS?NKCB;cz6Ehyb(P9$Usj6C1engio`9X~N5%y3jJ&^*pql>?NiFvoShZ%0 z)&2$BIgzQ>yJu5wsL_mXKTY-~sm9?zcPLlFdjzURAYtxZSiC6fJ-}DuYEEw~*8J0i zE447k{l{4!gI64be5xr5V6%qPM5#t#Utw28j5PR;Nk3X|Mw*IM4t<3xkXRyoyGcfEw zg^N<(ZS`W$Te@Jz8m058)rN~JAMPIjkCEp zkw93DdzS!C)`0aUWH>k->%1u?*i4H_y_+lSgn{6NupDp}$pDtEvCj<_m&`*dnFe}b z8fH{W0!3K5AAuH(d~#?~4bsi|x$nUX55n3X=0o!)@Z-o-t^sY-Y#+rJnSkD@>?oC% zt@U&8EiBgqslcC9t3Jpa#mF093Nwt_DaQ9ZK&^LqHBiJ#nHkWPD9Qm68(L*W#~L}* z?-e%$sSNOEK~I9vhVmFbyA6G4otUbHrZINr3_?ZYdsm=PC-aZAVLC^_$n-H?h}U3U z9oL}->Z!mC6?UT{?0%c8cQ-g$@axRRYA z?ti-^XyIP=1*B0RZ9-!ywEx-f4pX-V=oX7H2&kj zg=XUt*uKbvfHosXH#=~wIluFJ4;UL%yA$M0?j2yE95o2ua&f?AsQV)mcU3ER!i=19bsd$xffZ8zel@^O#!irMq_jwOQDT)O(Sz+ zosUbI-*IOKehB>c<1jLjft(9(mpPwK4^IoR!~V%>8Xpq4!Q8kZ;e&)4$V2&H?aFhH zlta(TNTuur4w*-HN>knggol@B8^SyhZ2;`cN_Gs!Awa*(pswx3z$yj_@0%C?78vVO zAe^w|_9!a`v!LAr>})Bs_RcG^J~S$!+X3o}mBj@8sfLj=MCfQqF^fLKSta%LK;Kn9 z-VJddxNnH@zCB`;+u~wXZh?aarqO$;d z`QsEVMy6KMdAgn*r@?k>Z&n_*bWJu7Ub!1 z=3$7`U{DPu>%QUIAT`{3GQvqAx>DuBdStZO`vT!Mm7a8w=d)?1iL&yf6AUzT@j*`% zxa0IFw&TE4lo{OcL(mkGv>sE3yQu+^l7u62p~K3LRk({%!ay=xjN-t)!o6yXYK9Ub zHtak&l+JV)8^dj67kP?nL}IQ(BNB6!hn;I+GJpU#my=UVH>OINmi}Wq9iiF`ic4Q! zH!dW-*vYxJK1nuGp$&-14g#v_~CJ6 z2zxZyUS&;y2}udp$ZsTu{#3CY@>5R4On270SAnfr90Cxlv`Dae(7^ut0!JW~^k=H8 zE48kTj*wgH>?+{2@EE6s?7vBTuM46J1X(kkM+j#jve&`!bpJ|k&1S9u^VjhEy$*#V zT~?8&0rKnJw;=+l^F(&;5R%k(sv|e3kR3H_DbPI(?Um6hDA|6U$_S0=9BmIb3tBc% zJI@swU>XaDjE{h*3E1XDH&JWpFhm+H;W|9qBW=elK;s zb0;kUo{jq?5jHJg_1M>_ib$EG?Q^H=Tc;!w!7*Czn@Kb9T}oVM3kkUd&>FGpD+kG@pM_Wo z0&+vYDSAhPB{oCU7pt;JFnpdQv!s)kD=AaGw2_+>M9#bOz-_PsUJ)5A)wj$v{lGsvarNG>v^mWtZA>3$&q539#{=HUvk-?s*paB)35`Im5?>pa+-4mE;mge&|%Y zgq=+W)-mC^%seddweq7jb?^wanEaJ)WKN=rnJMlC%Gi6HRw2*#WE8;$zH2J~y3=J6vZ`EnpWfJi|vCffH{0{Tl~o&neoZ1wYvu|%v$ z31OxwJirpHphhZ5u&(2=;=mN}!zTpWYac{~VShQE^>nBrqg)V(?~kh$j?~J|t;z)a zSK`F%fr1<%f}j_^=+FS~MciJs8ncpJ`r+EwqdjScpYmlWq)S6Sik(C-m7+6p;L%&y zI-{&i5GfNd#}fZ~$&a%e@Z#8bf>WKs{5*I)3BIlf2{Bk|3B$ z#s}}H>p{5NgE$R$GZ@>zy0bDQtI~Vb^0La@q4*t0TeJi-RgPU0D^PhR1zgf?br<_l za3uZts@^7O>e2uV3pS1$8i9im1oHYx-0A~c-xS88-YOfsUT@+rpTg;^pUA>Zn&Jc8 zwRp*=eDfXji-hY*ZTLOGmQ*LO5{wa5K%>81NDo*Ux>p61)#EP-KE%-uNPm+n>NEz3 z9tSXowi|vt3n?7-@sf^d5-UvaxU=t7aOJZ=cZZ2g5rg#yD6xeUDnKNGu>*HT?tz|= zJyKa^VRXMbry-#9%Qa*F$d$->W2DI9o;Q>8GOL^aJSsYf$vlsitMDJ<-tkv%@Nx2?Jvu+x_OBpPoDW z*avHp9;m%>V`?CRJ7LN#`=X7(f<@R6_?e*osNR8TDR ztz%mgw{tTf_lROJ2_g8OmVSZtQ*|69?U`loK3iDPviogl2!Z#FbvWirJo7ow9N)b8 z^TECA?x)C~XpT3uZsUXlXPHnwmp1zIER*`ev)%joxx-+~Q=lm=O-LHd}iGDMR45jZ6AHXh@4FtSUZ2!-Lh}4h(-9$JN*^Gdo z&)D6)6w2fpKyBh73zB!*_#T)Q~KZSoqbT$bsop-)VLYzu!qq`lfAP% zhs(zs6B5`x)5eifC!DlU*woTVQa})PS(f$W5}FjfOi2v3=2XrcH1iOUg;lXQO@>P( zo|nZ{Rsk1zSorO-u=jp{F~+Q$@sFF%ox}Of)F=&q9jrlPl{7NO^(w7vUJ`YYqEP*# zvNUBRY9=55&Hcm#IRJgTEkw_Ms$ zUR_%|grvm!sGl+^3DSrf5(PP@8^IFv`4OYk45b)#zPIU4EtyFLlOzFuG+0R!6AL=n zowmiNk>PN2e8zkrqSACALL5=Xi`V#cAWh;gKJ5GlqTu2o=;TI4p%lB_^AIb)c*?Y7ZsK4n&JRk^bF8j z2CN0xCW_ofip0eCQzP{3RmvONkp-Mp!Q*fCY!N6--GK`=>>Ug%mN-nagKh~@6UPxj zom~b_ABeBi$Z>vtB-ex!L*_K~c7xT6W75EE-g-WMtqED)YY_2^JYJC&4oNw)B)N+i z`e6`DAs8^K27!u_{&dmM};Jkt#cNEJ()C@mx##dGjt)bj2kE+xIe1hyU_{Zh=Hv_yuxx z_{Di<3nb#Rf%HK4F_&jH>@RZLcy}r8;r8*&767R_@f`Qf1D<*Rzeo>%V5cUU6Xp0o zU}jR(CVU{%F;pS+qk~nNqAJV7VoS3}eshmd42GGmhXwlvPFZwnW6b_rmv*FvKHuBN zPkcC0x#wb~nZy^PedX}wX)QogkBFKdes><&0yr^s3Qx@N(DTq1fS<`hd7h`u8y+}V z{`)W8X`W%;ReT}PRwh`CJ4VROgIAfUtt`KhW+LHX=Mgjy z%L@jat!f|O%-)!uUNJkmWoZ#g9I2gSp)ZhQD{ z*#ag~j_A^ND0i5Rb@OG;e+mEZ(CH7V{%<@aQ94JO2{Xg3T9Xyr%3WrM`uwv#Cqi>< z0;~$iMZjW^1RAbvnK)Eb9}oO0?XAK#-QI^9_;LD8%I--RWg)XPuz40et5L*dM3+t! zu7-auly|a!4HZCHvvkn=El9SkZnAc&WvVE@mQUhF-EO-z7DaYGNkeTdtNtbAuG~0n zBTX8Bf$>8+jJeQZq@|@n5&%V{kWdLpPv;&6BUNtrx{Kj`Yfj{&#cq`?e>ADn6) zr2%-P4+(-GvP`Bsn6MNi5lp5bihQ!oz!ky-6Be1@^a%VO23Wsp;hY_V{|_Y61mFIx zdkyNPiJizK9T+I4nurt}2MfdZ7xXjZiYNu68mw5+|4KNCV}#-qv?#xV)|0Sbk~aA& zDGYF?Cz1xjqag57uZhYqio<#a

c5h1mbONbdI5Xfy(l1vd~a8p-k-$u>jR5|9mB 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 z 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 str: + return hashlib.sha256(path.read_bytes()).hexdigest() + + +def _save(figure: Any, name: str) -> dict[str, Any]: + path = OUTPUT / name + figure.savefig(path, dpi=100) + return { + "file": path.name, + "bytes": path.stat().st_size, + "sha256": _sha256(path), + "figure_number": figure.number, + "axes_count": len(figure.axes), + } + + +def _xy_cells(notebook: dict[str, Any], through: int) -> list[tuple[int, dict[str, Any]]]: + return [ + (index, cell) + for index, cell in enumerate(notebook["cells"]) + if index <= through + and cell.get("cell_type") == "code" + and cell.get("metadata", {}).get("xy_pdsh_engine") == "xy" + ] + + +def _run(target: dict[str, Any]) -> dict[str, Any]: + plt.close("all") + path = ROOT / "examples" / "pdsh" / target["notebook"] + notebook = json.loads(path.read_text(encoding="utf-8")) + target_cell = notebook["cells"][target["raw_cell_index"]] + assert target_cell["metadata"]["xy_pdsh_source_id"] == target["source_id"] + namespace: dict[str, Any] = {"__name__": "__main__"} + before_mutation: dict[str, Any] | None = None + source_ownership: list[bool] = [] + + old_cwd = Path.cwd() + os.chdir(path.parent) + try: + for index, cell in _xy_cells(notebook, target["raw_cell_index"]): + source_id = cell["metadata"]["xy_pdsh_source_id"] + np.random.seed(zlib.crc32(f"{path.name}:{source_id}".encode())) + if index == target["raw_cell_index"] and target["execution_ordinal"] in {4, 14}: + # Preserve notebook variables but isolate the cell's own + # figure, matching an inline backend's close-after-display + # lifecycle instead of accumulating earlier cell figures. + plt.close("all") + if target["execution_ordinal"] == 8 and index == target["raw_cell_index"]: + source_figure = plt.figure(1) + before_mutation = _save( + source_figure, + "04_07-ordinal-08-raw-23-source-figure-before.png", + ) + logical = namespace["I"] + source_ownership = [ + not np.shares_memory(np.asarray(image.get_array()), logical) + and not np.shares_memory(np.asarray(image._entry["z"]), logical) + for image in source_figure.axes[0].images + ] + exec( + compile("".join(cell.get("source", [])), f"{path.name}:cell-{index}", "exec"), + namespace, + ) + finally: + os.chdir(old_cwd) + + current = plt.gcf() + if target["execution_ordinal"] == 14: + outputs = [_save(current, "04_01-ordinal-14-raw-36-current-figure.png")] + assertions = { + "fresh_axes_count": len(current.axes), + "new_axes_is_current": current.gca() is current.axes[-1], + "new_axes_title": current.axes[-1].get_title(), + } + elif target["execution_ordinal"] == 8: + assert before_mutation is not None + source_after = _save( + plt.figure(1), + "04_07-ordinal-08-raw-23-source-figure-after.png", + ) + target_output = _save(current, "04_07-ordinal-08-raw-23-target-figure.png") + outputs = [before_mutation, source_after, target_output] + assertions = { + "preexisting_image_arrays_owned": source_ownership, + "preexisting_figure_unchanged_by_I_mutation": ( + before_mutation["sha256"] == source_after["sha256"] + ), + "target_axes_count": len(current.axes), + } + else: + outputs = [_save(current, "04_10-ordinal-04-raw-14-current-figure.png")] + assertions = { + "fresh_axes_count": len(current.axes), + "new_axes_is_current": current.gca() is current.axes[-1], + "target_xscale": current.axes[-1]._scale_specs["x"]["name"], + "new_y_major_locator": type(current.axes[-1].yaxis.get_major_locator()).__name__, + } + return { + **target, + "source": "".join(target_cell.get("source", [])), + "outputs": outputs, + "assertions": assertions, + } + + +def main() -> None: + report = { + "base_commit": "a2ac10e", + "capture_scope": ( + "Exact affected xy cell after executing its preceding xy notebook variables. " + "04_01 and 04_10 close earlier figures before the target, matching inline " + "cell lifecycle; 04_07 additionally preserves its mutation-affected source " + "figure for before/after ownership evidence." + ), + "targets": [_run(target) for target in TARGETS], + } + (OUTPUT / "provenance.json").write_text( + json.dumps(report, indent=2) + "\n", + encoding="utf-8", + ) + print(json.dumps(report, indent=2)) + + +if __name__ == "__main__": + main() diff --git a/artifacts/pdsh-shim-cells/provenance.json b/artifacts/pdsh-shim-cells/provenance.json new file mode 100644 index 00000000..8a93f613 --- /dev/null +++ b/artifacts/pdsh-shim-cells/provenance.json @@ -0,0 +1,87 @@ +{ + "base_commit": "a2ac10e", + "capture_scope": "Exact affected xy cell after executing its preceding xy notebook variables. 04_01 and 04_10 close earlier figures before the target, matching inline cell lifecycle; 04_07 additionally preserves its mutation-affected source figure for before/after ownership evidence.", + "targets": [ + { + "notebook": "pdsh_04_01_simple_line_plots.ipynb", + "raw_cell_index": 36, + "execution_ordinal": 14, + "source_id": "cb1e1581032b452c9409d6c6813c49d1", + "source": "# xy.pyplot\nxy_ax = xy_plt.axes()\nxy_ax.plot(x, np.sin(x))\nxy_ax.set(xlim=(0, 10), ylim=(-2, 2), xlabel=\"x\", ylabel=\"sin(x)\", title=\"A Simple Plot\");", + "outputs": [ + { + "file": "04_01-ordinal-14-raw-36-current-figure.png", + "bytes": 44028, + "sha256": "ae13aedce1630671b83ab4514cd30557117b78d29c749996c7746865215990a7", + "figure_number": 1, + "axes_count": 1 + } + ], + "assertions": { + "fresh_axes_count": 1, + "new_axes_is_current": true, + "new_axes_title": "A Simple Plot" + } + }, + { + "notebook": "pdsh_04_07_customizing_colorbars.ipynb", + "raw_cell_index": 23, + "execution_ordinal": 8, + "source_id": "59bbdb311c014d738909a11f9e486628", + "source": "# xy.pyplot\n# make noise in 1% of the image pixels\nspeckles = np.random.random(I.shape) < 0.01\nI[speckles] = np.random.normal(0, 3, np.count_nonzero(speckles))\n\nxy_plt.figure(figsize=(10, 3.5))\n\nxy_plt.subplot(1, 2, 1)\nxy_plt.imshow(I, cmap=\"RdBu\")\nxy_plt.colorbar()\n\nxy_plt.subplot(1, 2, 2)\nxy_plt.imshow(I, cmap=\"RdBu\")\nxy_plt.colorbar(extend=\"both\")\nxy_plt.clim(-1, 1)", + "outputs": [ + { + "file": "04_07-ordinal-08-raw-23-source-figure-before.png", + "bytes": 213626, + "sha256": "6397a70be7f3856930805a80efc2eb5c4ea2bdead624a351961632bd1c585c91", + "figure_number": 1, + "axes_count": 1 + }, + { + "file": "04_07-ordinal-08-raw-23-source-figure-after.png", + "bytes": 213626, + "sha256": "6397a70be7f3856930805a80efc2eb5c4ea2bdead624a351961632bd1c585c91", + "figure_number": 1, + "axes_count": 1 + }, + { + "file": "04_07-ordinal-08-raw-23-target-figure.png", + "bytes": 161786, + "sha256": "3bf1b0638842ee0b1242ed106ecb5dac72804ada969d1275156173ea74d4a3ca", + "figure_number": 5, + "axes_count": 2 + } + ], + "assertions": { + "preexisting_image_arrays_owned": [ + true, + true + ], + "preexisting_figure_unchanged_by_I_mutation": true, + "target_axes_count": 2 + } + }, + { + "notebook": "pdsh_04_10_customizing_ticks.ipynb", + "raw_cell_index": 14, + "execution_ordinal": 4, + "source_id": "7623eae2785240b9bd12b16a66d81610", + "source": "# xy.pyplot\nxy_ax = xy_plt.axes()\nrng = np.random.default_rng(1701)\nxy_ax.plot(rng.random(50))\nxy_ax.grid()\n\nxy_ax.yaxis.set_major_locator(xy_plt.NullLocator())\nxy_ax.xaxis.set_major_formatter(xy_plt.NullFormatter())", + "outputs": [ + { + "file": "04_10-ordinal-04-raw-14-current-figure.png", + "bytes": 65675, + "sha256": "f042aed84b6ac92c579872a18f36317755b80b97b5ad66b5932c2246b888c72e", + "figure_number": 1, + "axes_count": 1 + } + ], + "assertions": { + "fresh_axes_count": 1, + "new_axes_is_current": true, + "target_xscale": "linear", + "new_y_major_locator": "NullLocator" + } + } + ] +} diff --git a/python/xy/pyplot/__init__.py b/python/xy/pyplot/__init__.py index 7b5c9eef..98e27250 100644 --- a/python/xy/pyplot/__init__.py +++ b/python/xy/pyplot/__init__.py @@ -339,7 +339,7 @@ def subplot(*args: Any, **kwargs: Any) -> Axes: packed ``subplot(211)`` shorthand. Returns the (new or existing) `Axes` and makes it current. """ - return gcf().add_subplot(*args, **kwargs) + return gcf().activate_subplot(*args, **kwargs) def subplot_mosaic(mosaic: str | list[Any], **kwargs: Any) -> tuple[Figure, dict[Any, Axes]]: diff --git a/python/xy/pyplot/_artists.py b/python/xy/pyplot/_artists.py index eb627f66..8c3e9553 100644 --- a/python/xy/pyplot/_artists.py +++ b/python/xy/pyplot/_artists.py @@ -618,12 +618,12 @@ def set_data(self, *args: Any) -> None: import numpy as np if len(args) == 1: - self._entry["z"] = np.asarray(args[0]) + self._axes._set_axes_image_data(self, args[0]) elif len(args) == 3: x, y, z = args - self._entry["z"] = np.asarray(z) - self._entry["kwargs"]["x"] = np.asarray(x) - self._entry["kwargs"]["y"] = np.asarray(y) + self._axes._set_axes_image_data(self, z) + self._entry["kwargs"]["x"] = np.asarray(x).copy() + self._entry["kwargs"]["y"] = np.asarray(y).copy() else: raise TypeError("set_data expects image data or x, y, image data") self._touch() diff --git a/python/xy/pyplot/_axes.py b/python/xy/pyplot/_axes.py index cf7a7ce3..daec5dde 100644 --- a/python/xy/pyplot/_axes.py +++ b/python/xy/pyplot/_axes.py @@ -858,6 +858,12 @@ def __init__(self, figure: Any, *, y2_of: Optional["Axes"] = None) -> None: # is a draw-order list, so removing an earlier axes must not slide # every later subplot into the preceding cell. self._subplot_index: Optional[int] = None + # Figure.add_subplot() always creates a new axes, while pyplot.subplot() + # activates an existing axes with the same subplot arguments. Keep the + # normalized spec separate from draw order so those two APIs can share + # the grid implementation without sharing creation semantics. + self._subplot_key: Optional[tuple[Any, ...]] = None + self._subplot_claimed = False self._absolute_plot_ratio: Optional[float] = None # The plot rectangle the exporter demands, in chart pixels # (left, top, width, height). Set by the grid compositor for a panel, @@ -2510,7 +2516,11 @@ def imshow(self, z: ArrayLike, cmap: Any = None, **kwargs: Any) -> AxesImage: cmap = getattr(colorizer, "cmap", cmap) self._aspect_equal = aspect != "auto" check_unsupported(kwargs, "imshow()") - masked_grid = np.ma.asarray(z, dtype=np.float64) + # Matplotlib images own their array. Keep the logical source separate + # from the normalized/resampled render buffer so later caller mutation + # cannot rewrite either side of the artist behind its back. + source_grid = np.ma.asarray(z).copy() + masked_grid = np.ma.asarray(source_grid, dtype=np.float64) grid = masked_grid.filled(np.nan) truecolor = grid.ndim == 3 and grid.shape[-1] in (3, 4) if not truecolor and grid.ndim != 2: @@ -2721,11 +2731,26 @@ def extreme(name: str, default: tuple[float, float, float, float]) -> np.ndarray entry = self._add( "heatmap", { - "z": grid, - "source_z": np.asanyarray(z), + "z": np.asanyarray(grid).copy(), + "source_z": source_grid, "kwargs": entry_kwargs, "clip_path": clip_path, "extent": bounds, + "_imshow_state": { + "cmap": cmap, + "kwargs": { + "vmin": vmin, + "vmax": vmax, + "alpha": alpha, + "origin": origin, + "aspect": aspect, + "extent": extent, + "interpolation": interpolation, + "interpolation_stage": interpolation_stage, + "norm": norm, + "clip_path": clip_path, + }, + }, }, ) if imshow_levels is not None: @@ -2735,6 +2760,39 @@ def extreme(name: str, default: tuple[float, float, float, float]) -> np.ndarray image.set_clip_path(clip_path) return image + def _set_axes_image_data(self, image: AxesImage, z: Any) -> None: + """Re-run an AxesImage through imshow's canonical preparation path. + + A temporary artist is used only as the normalized result carrier; it is + removed before returning, leaving the original artist and entry identity + stable for colorbars, ownership lists, and external handles. + """ + entry = image._entry + state = entry.get("_imshow_state") + if state is None: + entry["source_z"] = np.ma.asarray(z).copy() + entry["z"] = np.asanyarray(z).copy() + self._invalidate() + return + replacement = self.imshow(z, state["cmap"], **state["kwargs"]) + prepared = replacement._entry + self._remove_entry(prepared) + self._unregister_artist(replacement) + + entry["source_z"] = np.ma.asarray(prepared["source_z"]).copy() + entry["z"] = np.asanyarray(prepared["z"]).copy() + entry["extent"] = prepared["extent"] + for coordinate in ("x", "y"): + if coordinate in prepared["kwargs"]: + entry["kwargs"][coordinate] = np.asanyarray(prepared["kwargs"][coordinate]).copy() + else: + entry["kwargs"].pop(coordinate, None) + if "discrete_levels" in prepared: + entry["discrete_levels"] = prepared["discrete_levels"] + else: + entry.pop("discrete_levels", None) + self._invalidate() + def step(self, x: ArrayLike, y: ArrayLike, *args: Any, **kwargs: Any) -> list[Line2D]: """A step plot of ``y`` versus ``x``. @@ -3832,7 +3890,14 @@ def get_gridspec(self) -> Any: return None nrows, ncols = figure._nrows, figure._ncols cell_count = nrows * ncols - if cell_count <= 0 or len(figure._axes) < cell_count: + uniform_axes = [ + axes + for axes in figure._axes + if axes._figure_rect is None + and axes._subplot_index is not None + and 0 <= axes._subplot_index < cell_count + ] + if cell_count <= 0 or len({axes._subplot_index for axes in uniform_axes}) < cell_count: return None from ._mplfig import _GridSpec, _SubplotSpec @@ -3843,7 +3908,9 @@ def get_gridspec(self) -> Any: width_ratios=figure._width_ratios, height_ratios=figure._height_ratios, ) - for index, axes in enumerate(figure._axes[:cell_count]): + for axes in uniform_axes: + index = axes._subplot_index + assert index is not None row, col = divmod(index, ncols) spec = _SubplotSpec( grid, diff --git a/python/xy/pyplot/_mplfig.py b/python/xy/pyplot/_mplfig.py index 4d3fd1c6..83c77008 100644 --- a/python/xy/pyplot/_mplfig.py +++ b/python/xy/pyplot/_mplfig.py @@ -146,11 +146,14 @@ def canvas(self) -> "_FigureCanvas": return _FigureCanvas(self) def add_subplot(self, *args: Any, **kwargs: Any) -> Axes: + if not args: + args = (111,) if len(args) == 1 and isinstance(args[0], _SubplotSpec): spec = args[0] + subplot_key = ("grid", spec.nrows, spec.ncols, spec.index) if spec.is_single and not spec.gridspec.has_custom_geometry: self._ensure_grid(spec.nrows, spec.ncols) - ax = self._axes_at(spec.index) + ax = self._claim_or_create_subplot(subplot_key, spec.index) else: # Spans and custom spacing become explicit figure rectangles. # The spec is kept so subplots_adjust() can re-resolve them. @@ -160,27 +163,31 @@ def add_subplot(self, *args: Any, **kwargs: Any) -> Axes: # retain that geometry for tight_layout/subplots_adjust. self._nrows, self._ncols = spec.nrows, spec.ncols ax._subplot_spec = spec - elif args and args != (1, 1, 1) and args != (111,): + ax._subplot_key = ( + "gridspec", + id(spec.gridspec), + spec.rows, + spec.cols, + ) + ax._subplot_claimed = True + else: nrows, ncols, index = _parse_subplot_args(args) + subplot_key = ("grid", nrows, ncols, index - 1) if any(a._figure_rect is not None for a in self._axes): # matplotlib mixes numbered subplots into figures that already # hold free-form axes; keep the figure free-form via the cell - # rectangle (and return the existing axes for a repeat spec). + # rectangle. Figure.add_subplot() deliberately does not reuse + # an existing match; pyplot.subplot() owns activation/reuse. row, col = divmod(index - 1, ncols) grid = _GridSpec(self, nrows, ncols) rect = grid.cell_rect((row, row + 1), (col, col + 1)) - existing = next((a for a in self._axes if a._figure_rect == rect), None) - if existing is not None: - ax = existing - else: - ax = self.add_axes(rect) - ax._subplot_spec = _SubplotSpec(grid, (row, row + 1), (col, col + 1)) + ax = self.add_axes(rect) + ax._subplot_spec = _SubplotSpec(grid, (row, row + 1), (col, col + 1)) + ax._subplot_key = subplot_key + ax._subplot_claimed = True else: self._ensure_grid(nrows, ncols) - ax = self._axes_at(index - 1) - else: - self._ensure_grid(1, 1) - ax = self._axes_at(0) + ax = self._claim_or_create_subplot(subplot_key, index - 1) self._current_ax = ax # matplotlib: add_subplot activates the axes sharex = kwargs.pop("sharex", None) sharey = kwargs.pop("sharey", None) @@ -192,6 +199,43 @@ def add_subplot(self, *args: Any, **kwargs: Any) -> Axes: ax.set(**kwargs) return ax + def _claim_or_create_subplot(self, key: tuple[Any, ...], index: int) -> Axes: + """Claim a grid placeholder or append a same-spec overlay axes.""" + for candidate in self._axes: + if candidate._subplot_key == key and not candidate._subplot_claimed: + candidate._subplot_claimed = True + return candidate + ax = Axes(self) + ax._subplot_index = index + ax._subplot_key = key + ax._subplot_claimed = True + self._axes.append(ax) + return ax + + def activate_subplot(self, *args: Any, **kwargs: Any) -> Axes: + """Activate a matching subplot, creating it only when absent.""" + if not args: + args = (111,) + if len(args) == 1 and isinstance(args[0], _SubplotSpec): + spec = args[0] + if spec.is_single and not spec.gridspec.has_custom_geometry: + key: tuple[Any, ...] = ("grid", spec.nrows, spec.ncols, spec.index) + else: + key = ("gridspec", id(spec.gridspec), spec.rows, spec.cols) + else: + nrows, ncols, index = _parse_subplot_args(args) + key = ("grid", nrows, ncols, index - 1) + existing = next( + (ax for ax in self._axes if ax._subplot_claimed and ax._subplot_key == key), + None, + ) + if existing is None: + return self.add_subplot(*args, **kwargs) + self._current_ax = existing + if kwargs: + existing.set(**kwargs) + return existing + def add_axes(self, rect: Any, **kwargs: Any) -> Axes: parsed = tuple(float(value) for value in rect) if len(parsed) != 4 or any(value < 0 for value in parsed[2:]): @@ -310,16 +354,23 @@ def _ensure_grid(self, nrows: int, ncols: int) -> None: for index, ax in enumerate(self._axes): if ax._figure_rect is None: ax._subplot_index = index - while len(self._axes) < nrows * ncols: + ax._subplot_key = ("grid", nrows, ncols, index) + for index in range(nrows * ncols): + key = ("grid", nrows, ncols, index) + if any(ax._subplot_key == key for ax in self._axes): + continue ax = Axes(self) - ax._subplot_index = len(self._axes) + ax._subplot_index = index + ax._subplot_key = key self._axes.append(ax) def _axes_at(self, index: int) -> Axes: self._ensure_grid(self._nrows, self._ncols) - if not self._axes: - self._axes.append(Axes(self)) - return self._axes[index] + key = ("grid", self._nrows, self._ncols, index) + for ax in self._axes: + if ax._subplot_key == key: + return ax + raise IndexError(index) @property def axes(self) -> list[Axes]: @@ -1430,11 +1481,13 @@ def make_axes_grid(fig: Figure, nrows: int, ncols: int, squeeze: bool = True) -> # Avoid allocating and populating an object ndarray for the dominant # plt.subplots() case whose public return value is a bare Axes. fig._current_ax = fig._axes[0] + fig._axes[0]._subplot_claimed = True return fig._axes[0] axes = np.empty((nrows, ncols), dtype=object) for r in range(nrows): for c in range(ncols): axes[r, c] = fig._axes_at(r * ncols + c) + axes[r, c]._subplot_claimed = True # Matplotlib's subplots() constructs axes in row-major order and leaves # the final one active for subsequent stateful ``plt.*`` calls. fig._current_ax = axes[-1, -1] diff --git a/spec/matplotlib/compat-changelog.md b/spec/matplotlib/compat-changelog.md index 1778169b..5cfca8c3 100644 --- a/spec/matplotlib/compat-changelog.md +++ b/spec/matplotlib/compat-changelog.md @@ -4,6 +4,17 @@ This changelog records changes to the upstream compatibility target and to the meaning of xy's compatibility levels. It complements the project changelog, which covers user-visible releases across the whole package. +## PDSH state and image ownership — 2026-07-26 + +- Split subplot creation from activation: repeated same-spec + `Figure.add_subplot()` calls now create overlay axes, while `plt.subplot()` + reuses the first matching axes and no-argument `plt.axes()` creates a fresh + axes. This restores the state boundaries used by PDSH 04.01 and 04.10. +- `imshow()` now copies both its logical source and prepared render arrays. + `AxesImage.set_data()` updates `get_array()` and rebuilds render data through + the initial normalization/origin/resampling path, so later mutation of either + caller array cannot rewrite an existing image. + ## Vector-field gallery corrections — 2026-07-24 - `quiver(units=...)` now converts Matplotlib's width-unit vocabulary without diff --git a/spec/matplotlib/compat.md b/spec/matplotlib/compat.md index 0d5f39aa..98a9557b 100644 --- a/spec/matplotlib/compat.md +++ b/spec/matplotlib/compat.md @@ -58,7 +58,7 @@ dependency-free `triangles=` shorthand into Matplotlib's equivalent | `boxplot`, `violinplot`, `bxp`, `violin`, `errorbar` | Boxplots support notches, bootstrap/user confidence intervals, median overrides (drawn median only; notch CIs stay data-derived like Matplotlib), percentile/custom whiskers, cap widths, `sym`, and component colors/widths/alpha — dashed component linestyles fail loudly. Violins support Scott/Silverman/scalar/callable Gaussian-KDE bandwidths, quantiles, and low/high sides; the default (bw_method omitted) uses the native histogram violin mark, whose shape differs from the explicit KDE path. `boxplot` autoscales its value axis over the Tukey whiskers plus, when `showfliers` is on, the flier points. Its default category positions are 1-based and `manage_ticks=True` reserves half a unit around the outer positions, matching Matplotlib | | `fill_between(x, y1, y2, where=, step=)` / `fill_betweenx` | Masks are split into finite contiguous polygons; step geometry is expanded exactly | | `stackplot` | All four baselines are computed by the native stacked-bounds kernel | -| `imshow` / `pcolormesh` (`cmap=`, `vmin=`/`vmax=`, `origin=`) | `imshow` defaults to `rcParams['image.origin']`; nearest stays cell-exact, while named smoothing modes use dependency-free per-kernel approximations over a bounded 512–1024 px intermediate for both scalar and RGB(A) data. Filter choice and intermediate size do not yet depend on final display resolution, and explicit `interpolation="auto"` remains unsupported. Unsupported stages/transforms fail loudly. Uniform meshes retain the texture fast path; nonuniform and curvilinear grids use native quad-to-triangle expansion. Both hug their outer cell edge with no margin, as Matplotlib's sticky image/mesh edges do | +| `imshow` / `pcolormesh` (`cmap=`, `vmin=`/`vmax=`, `origin=`) | `imshow` defaults to `rcParams['image.origin']`; nearest stays cell-exact, while named smoothing modes use dependency-free per-kernel approximations over a bounded 512–1024 px intermediate for both scalar and RGB(A) data. Images own independent logical-source and render arrays, and `AxesImage.set_data()` rebuilds both through the same normalization, origin, and resampling path as initial creation. Filter choice and intermediate size do not yet depend on final display resolution, and explicit `interpolation="auto"` remains unsupported. Unsupported stages/transforms fail loudly. Uniform meshes retain the texture fast path; nonuniform and curvilinear grids use native quad-to-triangle expansion. Both hug their outer cell edge with no margin, as Matplotlib's sticky image/mesh edges do | | `step`, `stairs`, `stem`, `eventplot` | Compact step/stem/segment marks; no Python-side vertex expansion | | `contour` / `contourf` / `clabel` | Native marching squares over rectilinear grids; warped grids route through native Delaunay/marching-triangle kernels; automatic labels repeat at bounded, separated positions along each level (line knockout for `inline=True` remains a visual approximation) | | `quiver`, `barbs`, `streamplot` | Quiver supports Matplotlib's width-unit vocabulary independently from length scaling. Barbs use fixed-length staffs and Matplotlib's flag/full/half decomposition, including increments, rounding, empty glyphs, colors, sizes, flipping, and pivots. Streamplot uses a dependency-free adaptive Heun integrator with occupancy-aware seeding; `start_points`, `integration_direction`, `broken_streamlines`, integration step/error scales, array widths/colors, and `num_arrows` are honored | @@ -77,7 +77,7 @@ dependency-free `triangles=` shorthand into Matplotlib's equivalent | `twinx()`, `secondary_xaxis()`, `secondary_yaxis()` | second data axes and linked tick-only secondary axes with callable forward/inverse conversions. Secondary-axis ticks are evenly spaced conversions of the primary domain (not Matplotlib's secondary-unit locators) and currently reach the interactive HTML client only — PNG/SVG export does not draw them yet | | `fig, ax = plt.subplots()`; `plt.subplots(n, m, figsize=, dpi=, squeeze=, sharex=, sharey=)` | Grid renders as CSS-grid HTML and stitched PNG/SVG; shared axes use common domains and live linked pan/zoom. `Figure.subplots_adjust(left=, right=, top=, bottom=, wspace=, hspace=)` moves the SubplotParams frame: the grid resolves to explicit figure rectangles and every exporter (HTML, PNG, SVG) positions panels at those rectangles | | `Axes.get_position(original=False)` and the rendered axes frame | Supported subplot and free-form axes report their live figure rectangle and render on it. `original=True` returns the allocated rectangle before an adjustable-box aspect correction; the default applies the correction and its anchor, matching Matplotlib. Grid cells resolve under the live SubplotParams (`wspace`/`hspace`, width/height ratios), while explicit `add_axes`/`set_position` rectangles take precedence until a later layout adjustment. Titles, top-side x axes (`matshow`), and secondary-y gutters grow the surrounding allocation instead of moving the frame. **Known exception:** an axes carrying a colorbar keeps label-aware margins because xy and Matplotlib currently reserve the colorbar strip through different layout paths | -| `fig.add_subplot(2, 2, 1)` / `add_subplot(221)` | | +| `fig.add_subplot(2, 2, 1)` / `add_subplot(221)` | `Figure.add_subplot` creates a new axes even when the figure already contains the same spec; stateful `plt.subplot` instead activates the first matching axes in figure order. A no-argument `plt.axes()` creates a fresh default-position axes | | `plt.subplot_mosaic([['A','B'],['C','C']])` / `Figure.subplot_mosaic` | Row sequences (a list of equal-length label strings, or nested label lists) resolve to a uniform grid; each distinct label, in first-appearance order, binds to the next cell, returning `(fig, {label: Axes})` with `figsize=`/`dpi=` sizing the figure. Repeated labels do not span and `'.'` does not blank a cell — the grid keeps one axes per cell — and Matplotlib's single-string forms (`'AB;CC'`, newline-separated blocks) are not parsed into rows | | `gca` / `gcf` / `sca` / `figure(num)` / `close(...)` | matplotlib's implicit-state semantics | | `savefig('x.png' / '.svg' / '.html', dpi=)` | Browser-free PNG/SVG supports both single and multi-panel figures; file-like targets require an explicit `format=` and unsupported metadata/layout/export formats fail loudly | diff --git a/tests/pyplot/test_artist_mutations.py b/tests/pyplot/test_artist_mutations.py index c715ba54..41dba930 100644 --- a/tests/pyplot/test_artist_mutations.py +++ b/tests/pyplot/test_artist_mutations.py @@ -92,3 +92,37 @@ def test_segment_backed_line2d_set_xdata_rebuilds_retained_logical_data() -> Non np.testing.assert_array_equal(trace.x1.values, [1, 2]) np.testing.assert_array_equal(trace.y1.values, [2, 3]) np.testing.assert_array_equal(line.get_xdata(), [3, 1, 2]) + + +def test_imshow_owns_source_and_render_arrays_and_set_data_reprepares_both() -> None: + original = np.arange(9.0).reshape(3, 3) + _fig, ax = plt.subplots() + image = ax.imshow(original, origin="upper", interpolation="bilinear") + logical_before = np.asarray(image.get_array()).copy() + render_before = np.asarray(image._entry["z"]).copy() + + original[:] = -99.0 + + np.testing.assert_array_equal(image.get_array(), logical_before) + np.testing.assert_array_equal(image._entry["z"], render_before) + assert not np.shares_memory(np.asarray(image.get_array()), original) + assert not np.shares_memory(np.asarray(image._entry["z"]), np.asarray(image.get_array())) + + replacement = np.arange(12.0).reshape(3, 4) + image.set_data(replacement) + expected_source = replacement.copy() + expected_render = np.asarray( + plt.figure() + .add_subplot(111) + .imshow( + expected_source, + origin="upper", + interpolation="bilinear", + ) + ._entry["z"] + ).copy() + replacement[:] = 123.0 + + np.testing.assert_array_equal(image.get_array(), expected_source) + np.testing.assert_array_equal(image._entry["z"], expected_render) + assert ax.images == [image] diff --git a/tests/pyplot/test_figure_state.py b/tests/pyplot/test_figure_state.py index f3b7e764..250a41cf 100644 --- a/tests/pyplot/test_figure_state.py +++ b/tests/pyplot/test_figure_state.py @@ -117,14 +117,29 @@ def test_add_gridspec_supports_single_cell_specs() -> None: gs = fig.add_gridspec(2, 2, width_ratios=[1, 2]) ax = fig.add_subplot(gs[1, 0]) - same = fig.add_subplot(gs[2]) + overlay = fig.add_subplot(gs[2]) - assert ax is same + assert ax is not overlay + assert ax._subplot_index == overlay._subplot_index == 2 assert fig._width_ratios == (1.0, 2.0) - assert fig.gca() is ax + assert fig.gca() is overlay span = gs[0:2, 0] assert span.rows == (0, 2) assert span.cols == (0, 1) with pytest.raises(NotImplementedError): _ = gs[0:2:2, 0] # step slicing stays out of the span contract + + +def test_figure_add_subplot_creates_same_spec_overlay() -> None: + fig = Figure(1) + + first = fig.add_subplot(111) + second = fig.add_subplot(111) + + assert first is not second + assert fig.axes == [first, second] + assert first._subplot_index == second._subplot_index == 0 + assert first.get_subplotspec() is not None + assert second.get_subplotspec() is not None + assert fig.gca() is second diff --git a/tests/pyplot/test_pyplot_state_management.py b/tests/pyplot/test_pyplot_state_management.py index 46ab6654..f319929e 100644 --- a/tests/pyplot/test_pyplot_state_management.py +++ b/tests/pyplot/test_pyplot_state_management.py @@ -48,6 +48,21 @@ def test_pyplot_axes_delaxes_figtext_and_figlegend(): assert ax2 not in fig.axes +def test_subplot_reuses_match_but_no_arg_axes_is_fresh(): + fig = plt.figure() + + subplot = plt.subplot(111) + assert plt.subplot(111) is subplot + first_axes = plt.axes() + second_axes = plt.axes() + + assert first_axes is not subplot + assert second_axes is not first_axes + assert plt.subplot(111) is subplot + assert fig.axes == [subplot, first_axes, second_axes] + assert plt.gca() is subplot + + def test_pyplot_twiny_creates_current_axes_on_same_figure(): fig, ax = plt.subplots() twin = plt.twiny() From 9aa3d6ec61cc6f9a437db6aca29d09b0a97b754e Mon Sep 17 00:00:00 2001 From: Sriman Selvakumaran Date: Sun, 26 Jul 2026 22:36:17 -0700 Subject: [PATCH 02/17] Support authored Matplotlib scatter markers --- js/src/50_chartview.ts | 63 +++++++++--- js/src/51_annotations.ts | 97 ++++++++++++++++++- js/src/55_marks.ts | 1 + python/xy/_fontmetrics.py | 2 +- python/xy/_raster.py | 113 ++++++++++++++++++++-- python/xy/_svg.py | 57 ++++++++++- python/xy/components.py | 6 ++ python/xy/marks.py | 35 +++++++ python/xy/pyplot/_axes.py | 99 +++++++++++++++++-- python/xy/pyplot/_markers.py | 137 +++++++++++++++++++++++++++ python/xy/pyplot/_mathtext.py | 4 + scripts/gen_font.py | 2 +- spec/api/styling.md | 9 ++ spec/matplotlib/compat.md | 9 +- src/font.rs | 44 +++++++-- tests/pyplot/test_marker_fidelity.py | 74 +++++++++++++++ 16 files changed, 699 insertions(+), 53 deletions(-) create mode 100644 python/xy/pyplot/_markers.py diff --git a/js/src/50_chartview.ts b/js/src/50_chartview.ts index 3b261b0c..862b54c2 100644 --- a/js/src/50_chartview.ts +++ b/js/src/50_chartview.ts @@ -1940,7 +1940,6 @@ export class ChartView { svg.setAttribute("viewBox", "0 0 18 14"); svg.setAttribute("width", "18"); svg.setAttribute("height", "14"); - const path = document.createElementNS(ns, "path"); const paths = { square: "M4.5 2.5h9v9h-9z", diamond: "M9 2l5 5-5 5-5-5z", thin_diamond: "M9 2l3 5-3 5-3-5z", @@ -1954,20 +1953,49 @@ export class ChartView { star: "M9 2l1.5 3.1 3.5.5-2.5 2.5.6 3.5L9 10l-3.1 1.6.6-3.5L4 5.6l3.5-.5z" }; const color = gradientPaint ? gradientPaint(svg) : safeCssPaint(this.root, bg); - if (it.symbol === "circle" || it.symbol === "point" || it.symbol === "pixel") { - if (it.symbol === "pixel") path.setAttribute("d", "M8.5 6.5h1v1h-1z"); - else path.setAttribute("d", `M9 ${it.symbol === "point" ? 4.75 : 2.5}a${it.symbol === "point" ? 2.25 : 4.5} ${it.symbol === "point" ? 2.25 : 4.5} 0 1 0 0 ${it.symbol === "point" ? 4.5 : 9}a${it.symbol === "point" ? 2.25 : 4.5} ${it.symbol === "point" ? 2.25 : 4.5} 0 1 0 0 -${it.symbol === "point" ? 4.5 : 9}`); - } else path.setAttribute("d", paths[it.symbol] || paths.square); - sw.style.setProperty( - "--xy-legend-swatch-fill", - it.symbol.endsWith("_line") ? "none" : color, - ); - sw.style.setProperty("--xy-legend-swatch-stroke", color); - sw.style.setProperty( - "--xy-legend-swatch-stroke-width", - String(it.style?.stroke_width || 1), - ); - svg.appendChild(path); + if (it.style?.marker_glyph) { + const text = document.createElementNS(ns, "text"); + text.setAttribute("x", "9"); + text.setAttribute("y", "7"); + text.setAttribute("font-family", "DejaVu Sans"); + text.setAttribute("font-size", "10"); + text.setAttribute("text-anchor", "middle"); + text.setAttribute("dominant-baseline", "central"); + text.textContent = String(it.style.marker_glyph); + sw.style.setProperty("--xy-legend-swatch-fill", color); + sw.style.setProperty("--xy-legend-swatch-stroke", "none"); + sw.style.setProperty("--xy-legend-swatch-stroke-width", "0"); + svg.appendChild(text); + } else { + const path = document.createElementNS(ns, "path"); + if (it.style?.marker_path) { + const commands = []; + for (const contour of it.style.marker_path.contours || []) { + for (let offset = 0; offset + 1 < contour.length; offset += 2) { + const x = 9 + 9 * Number(contour[offset]); + const y = 7 - 9 * Number(contour[offset + 1]); + commands.push(`${offset === 0 ? "M" : "L"}${x} ${y}`); + } + if (it.style.marker_path.filled) commands.push("Z"); + } + path.setAttribute("d", commands.join(" ")); + } else if (it.symbol === "circle" || it.symbol === "point" || it.symbol === "pixel") { + if (it.symbol === "pixel") path.setAttribute("d", "M8.5 6.5h1v1h-1z"); + else path.setAttribute("d", `M9 ${it.symbol === "point" ? 4.75 : 2.5}a${it.symbol === "point" ? 2.25 : 4.5} ${it.symbol === "point" ? 2.25 : 4.5} 0 1 0 0 ${it.symbol === "point" ? 4.5 : 9}a${it.symbol === "point" ? 2.25 : 4.5} ${it.symbol === "point" ? 2.25 : 4.5} 0 1 0 0 -${it.symbol === "point" ? 4.5 : 9}`); + } else path.setAttribute("d", paths[it.symbol] || paths.square); + const lineMarker = it.symbol.endsWith("_line") || + (it.style?.marker_path && !it.style.marker_path.filled); + sw.style.setProperty( + "--xy-legend-swatch-fill", + lineMarker ? "none" : color, + ); + sw.style.setProperty("--xy-legend-swatch-stroke", color); + sw.style.setProperty( + "--xy-legend-swatch-stroke-width", + String(it.style?.stroke_width || 1), + ); + svg.appendChild(path); + } sw.appendChild(svg); sw.style.setProperty("--xy-legend-swatch-width", "18px"); sw.style.setProperty("--xy-legend-swatch-height", "14px"); @@ -2908,6 +2936,7 @@ export class ChartView { // use each point's resolved LUT/palette color, never a generic trace color. _pointMarkStyle(g, t) { const s = t.style || {}; + g.authoredMarker = s.marker_path || s.marker_glyph || null; g.symbol = { circle: 0, square: 1, diamond: 2, triangle: 3, cross: 4, hexagon: 5, pentagon: 6, star: 7, triangle_down: 8, triangle_left: 9, triangle_right: 10, x: 11, point: 12, pixel: 13, thin_diamond: 14, plus_line: 15, x_line: 16 }[s.symbol] || 0; g.pointStrokeWidth = Number(s.stroke_width) || 0; g.pointStrokeFace = !s.stroke && (!t.stroke || t.stroke.mode === "match_fill"); @@ -3871,6 +3900,9 @@ export class ChartView { _drawPoints(g, xm, ym, opacityScale = 1) { opacityScale *= (g._transitionOpacity ?? 1) * (g._legendDim ?? 1); + // Pyplot-authored contours and glyphs keep these resident point buffers + // for picking/transitions but paint on the Canvas2D overlay below. + if (g.authoredMarker) return; const animationScale = g._transitionScale ?? 1; if (this._canDrawSimplePoints(g)) { this._drawSimplePoints(g, xm, ym, opacityScale); @@ -5354,6 +5386,7 @@ export class ChartView { this._drawAnnotationLabels(updateLabels); // Label layout resolves responsive callout offsets before the pointer is // painted, keeping its start attached when an edge clamp moves the text. + this._drawAuthoredScatterMarkers(octx); this._drawAnnotationShapes(octx); } diff --git a/js/src/51_annotations.ts b/js/src/51_annotations.ts index c3920c91..dc320b29 100644 --- a/js/src/51_annotations.ts +++ b/js/src/51_annotations.ts @@ -1,4 +1,5 @@ -import { safeCssPaint } from "./20_theme"; +import { buildLutData } from "./10_colormaps"; +import { parseColor, safeCssPaint } from "./20_theme"; import { ChartView } from "./50_chartview"; // ChartView annotation layer (§ chrome): reference lines/zones already draw @@ -165,6 +166,100 @@ function xyTaperPolygon(points, w0, w1) { } Object.assign(ChartView.prototype, { + _authoredScatterRgba(g, index) { + if (g.colorMode === 3 && g._cpu.rgba) { + const offset = index * 4; + return Array.from(g._cpu.rgba.slice(offset, offset + 4), (value: number) => value / 255); + } + if (g.colorMode === 2 && g._cpu.color) { + const palette = g.trace.color?.palette || []; + if (palette.length) { + return parseColor( + this.root, + palette[Math.round(g._cpu.color[index]) % palette.length], + g.color, + ); + } + } + if (g.colorMode === 1 && g._cpu.color) { + const lut = buildLutData(g.trace.color?.colormap || "viridis"); + const slot = Math.max(0, Math.min(255, Math.round(g._cpu.color[index] * 255))) * 4; + return [lut[slot] / 255, lut[slot + 1] / 255, lut[slot + 2] / 255, 1]; + } + return g.color || [0.3, 0.47, 0.66, 1]; + }, + + _drawAuthoredScatterMarkers(ctx) { + const traces = (this.gpuTraces || []).filter( + (g) => g && g.trace?.kind === "scatter" && g.authoredMarker && + g.tier !== "density" && !g._legendHidden + ); + if (!traces.length) return; + const p = this.plot; + ctx.save(); + ctx.beginPath(); + ctx.rect(p.x, p.y, p.w, p.h); + ctx.clip(); + for (const g of traces) { + const style = g.trace.style || {}; + const markerPath = style.marker_path; + const markerGlyph = style.marker_glyph; + const zoomStyle = this._pointZoomStyle(g); + const traceOpacity = Number(style.opacity ?? 0.8) * + Number(style.artist_alpha ?? 1) * zoomStyle.opacity * + Number(g._transitionOpacity ?? 1) * Number(g._legendDim ?? 1); + for (let index = 0; index < g.n; index++) { + const x = this._decodeValue(g._cpu.x, g.xMeta, index); + const y = this._decodeValue(g._cpu.y, g.yMeta, index); + const px = this._dataPx(g.xAxis, x); + const py = this._dataPx(g.yAxis, y); + if (!Number.isFinite(px) || !Number.isFinite(py)) continue; + const sizeValue = g.sizeMode === 1 && g._cpu.size + ? g.sizeRange[0] + (g.sizeRange[1] - g.sizeRange[0]) * g._cpu.size[index] + : g.size; + const size = Math.max(0, Number(sizeValue) * zoomStyle.sizeFactor); + const rgba = this._authoredScatterRgba(g, index); + const alpha = Math.max(0, Math.min(1, rgba[3] * traceOpacity)); + const paint = `rgba(${Math.round(rgba[0] * 255)},${Math.round(rgba[1] * 255)},${Math.round(rgba[2] * 255)},${alpha})`; + const strokeWidth = Math.max(0, Number(style.stroke_width) || 0); + const stroke = style.stroke + ? safeCssPaint(this.root, style.stroke, rgba) + : paint; + ctx.save(); + ctx.fillStyle = paint; + ctx.strokeStyle = stroke; + ctx.lineWidth = strokeWidth; + if (markerGlyph) { + ctx.font = `${size}px "DejaVu Sans", sans-serif`; + ctx.textAlign = "center"; + ctx.textBaseline = "middle"; + ctx.fillText(String(markerGlyph), px, py); + if (strokeWidth > 0 && style.stroke) ctx.strokeText(String(markerGlyph), px, py); + } else if (markerPath) { + ctx.beginPath(); + for (const contour of markerPath.contours || []) { + for (let offset = 0; offset + 1 < contour.length; offset += 2) { + const vx = px + size * Number(contour[offset]); + const vy = py - size * Number(contour[offset + 1]); + if (offset === 0) ctx.moveTo(vx, vy); + else ctx.lineTo(vx, vy); + } + if (markerPath.filled) ctx.closePath(); + } + if (markerPath.filled) { + ctx.fill("evenodd"); + if (strokeWidth > 0) ctx.stroke(); + } else { + ctx.lineWidth = Math.max(1, strokeWidth); + ctx.stroke(); + } + } + ctx.restore(); + } + } + ctx.restore(); + }, + _annotationPaint(style, fallback) { return safeCssPaint(this.root, style && style.color, fallback); }, diff --git a/js/src/55_marks.ts b/js/src/55_marks.ts index 43a0d03a..f52f0bc5 100644 --- a/js/src/55_marks.ts +++ b/js/src/55_marks.ts @@ -170,6 +170,7 @@ export const MARK_KINDS = { hexbin: { build: (view, g, t, buffer) => view._buildHexbinMark(g, t, buffer), draw: (view, g) => { + if (g.authoredMarker) return; const [x0, x1] = view._axisRange(g.xAxis); const [y0, y1] = view._axisRange(g.yAxis); view._drawMesh(g, view._map(g.x0Meta, x0, x1, g.xAxis), view._map(g.y0Meta, y0, y1, g.yAxis)); diff --git a/python/xy/_fontmetrics.py b/python/xy/_fontmetrics.py index 8e57f347..ac550088 100644 --- a/python/xy/_fontmetrics.py +++ b/python/xy/_fontmetrics.py @@ -70,7 +70,7 @@ 8369: 10, 8370: 10, 8372: 12, 8377: 10, 8378: 10, 8381: 10, 8383: 10, 8592: 13, 8594: 13, 8706: 8, 8711: 11, 8712: 14, 8722: 13, 8723: 13, 8730: 10, 8733: 11, 8734: 13, 8747: 8, 8776: 13, 8800: 13, 8801: 13, 8804: 13, 8805: 13, 8960: 10, - 65533: 16, + 9824: 14, 9827: 14, 9829: 14, 9830: 14, 65533: 16, } # fmt: on diff --git a/python/xy/_raster.py b/python/xy/_raster.py index 6f5f3603..6023c17b 100644 --- a/python/xy/_raster.py +++ b/python/xy/_raster.py @@ -1551,6 +1551,81 @@ def _trace_paint_rgba( return rgba +def _emit_authored_scatter( + cmd: _Cmd, + t: dict[str, Any], + blob: bytes, + cols: list[dict[str, Any]], + sx: _Scale, + sy: _Scale, + style: dict[str, Any], + color: str, +) -> None: + """Paint bounded pyplot-authored paths/glyphs in display-list space.""" + xv, yv = _column(blob, cols[t["x"]]), _column(blob, cols[t["y"]]) + px, py = sx(xv), sy(yv) + n = len(xv) + if not n: + return + + def read(index: int) -> np.ndarray: + return _column(blob, cols[index]) + + face = _trace_paint_rgba(t, "color", n, color, read) + fills = np.rint( + _paint.effective_rgba(face, t, read, component="fill", default_opacity=0.8) * 255.0 + ).astype(np.uint8) + size_ch = t.get("size") or {} + if size_ch.get("mode") == "continuous": + values = _column(blob, cols[size_ch["buf"]]) + r0, r1 = size_ch.get("range_px", [2, 18]) + radii = (r0 + (r1 - r0) * np.clip(values, 0, 1)) / 2 + else: + radii = np.full(n, float(size_ch.get("size", 4.0)) / 2) + widths = _paint.style_values(t, "stroke_width", n, read, float(style.get("stroke_width", 0))) + marker_path = style.get("marker_path") + marker_glyph = style.get("marker_glyph") + filled = bool(marker_path and marker_path.get("filled", True)) + + for index in range(n): + fill = tuple(int(value) for value in fills[index]) + diameter = max(0.0, 2 * (float(radii[index]) - float(widths[index]) / 2)) + if marker_glyph: + cmd.text( + float(px[index]), + float(py[index]) + diameter * 0.34, + 1, + diameter, + fill, + str(marker_glyph), + ) + continue + if not marker_path: + continue + contours = [] + for contour in marker_path.get("contours") or (): + values = np.asarray(contour, dtype=np.float64).reshape(-1, 2) + contours.append( + [ + ( + float(px[index]) + diameter * float(x), + float(py[index]) - diameter * float(y), + ) + for x, y in values + ] + ) + if filled: + for points in contours: + cmd.fill(points, fill) + if float(widths[index]) > 0: + for points in contours: + cmd.stroke(points, float(widths[index]), fill, closed=True) + else: + width = max(1.0, float(widths[index])) + for points in contours: + cmd.stroke(points, width, fill) + + def _emit_scatter( cmd: _Cmd, t: dict[str, Any], @@ -1563,6 +1638,9 @@ def _emit_scatter( ) -> None: ch = t.get("color") or {} size_ch = t.get("size") or {} + if style.get("marker_path") or style.get("marker_glyph"): + _emit_authored_scatter(cmd, t, blob, cols, sx, sy, style, color) + return def read(index: int) -> np.ndarray: return _column(blob, cols[index]) @@ -2295,19 +2373,34 @@ def _emit_legend( if kind == "scatter": symbol = style.get("symbol", "circle") sym = _SYMBOLS.get(symbol, 0) + marker_path = style.get("marker_path") + marker_glyph = style.get("marker_glyph") sw = float(style.get("stroke_width", 0.0)) - if symbol in {"plus_line", "x_line"} and sw <= 0: + if ( + symbol in {"plus_line", "x_line"} + or (marker_path and not bool(marker_path.get("filled", True))) + ) and sw <= 0: sw = 1.0 stroke = _rgba(style.get("stroke"), color_str) if sw > 0 else (0, 0, 0, 0) - cmd.point( - (hx0 + hx1) / 2, - cy, - max(0.5, float(style.get("size", 8.0)) / 2.0), - sym, - c, - sw, - stroke, - ) + radius = max(0.5, float(style.get("size", 8.0)) / 2.0) + center = (hx0 + hx1) / 2 + if marker_glyph: + cmd.text(center, cy + radius * 0.68, 1, 2 * radius, c, str(marker_glyph)) + elif marker_path: + for contour in marker_path.get("contours") or (): + values = np.asarray(contour, dtype=np.float64).reshape(-1, 2) + points = [ + (center + 2 * radius * float(px), cy - 2 * radius * float(py)) + for px, py in values + ] + if bool(marker_path.get("filled", True)): + cmd.fill(points, c) + if sw > 0: + cmd.stroke(points, sw, stroke if stroke[3] else c, closed=True) + else: + cmd.stroke(points, max(1.0, sw), c) + else: + cmd.point(center, cy, radius, sym, c, sw, stroke) elif kind in _LEGEND_LINE_KINDS: cmd.stroke( [(hx0, cy), (hx1, cy)], diff --git a/python/xy/_svg.py b/python/xy/_svg.py index dc78b65c..ab84e66e 100644 --- a/python/xy/_svg.py +++ b/python/xy/_svg.py @@ -2817,6 +2817,22 @@ def read(index: int) -> np.ndarray: _SVG_MARK_BLOCK = 4096 +def _authored_marker_path_d( + marker_path: dict[str, Any], cx: float, cy: float, diameter: float +) -> str: + parts: list[str] = [] + for contour in marker_path.get("contours") or (): + values = np.asarray(contour, dtype=np.float64).reshape(-1, 2) + if not len(values): + continue + points = [(cx + diameter * float(x), cy - diameter * float(y)) for x, y in values] + parts.append(f"M {_num(points[0][0])} {_num(points[0][1])}") + parts.extend(f"L {_num(x)} {_num(y)}" for x, y in points[1:]) + if bool(marker_path.get("filled", True)): + parts.append("Z") + return " ".join(parts) + + def _scatter_marks( t: dict, blob: bytes, cols: list, sx: _Scale, sy: _Scale, style: dict, fallback: str ) -> list[str]: @@ -2884,6 +2900,8 @@ def read(index: int) -> np.ndarray: stroke_rgba = _paint.effective_rgba( stroke_source, effective_trace, read, component="stroke", default_opacity=0.8 ) + marker_path = style.get("marker_path") + marker_glyph = style.get("marker_glyph") if grouped_alpha: fill_group = float(scalar_artist) * _fill_opacity(style, 1.0) stroke_group = float(scalar_artist) * _stroke_opacity(style, 1.0) @@ -2903,13 +2921,16 @@ def read(index: int) -> np.ndarray: ) symbol = symbols[i] builder = _SYMBOL_BUILDERS.get(symbol) - line_symbol = symbol in {"plus_line", "x_line"} + authored_line = bool(marker_path) and not bool(marker_path.get("filled", True)) + line_symbol = symbol in {"plus_line", "x_line"} or authored_line stroke_w = float(stroke_widths[i]) if line_symbol and stroke_w <= 0: stroke_w = 1.0 stroke_color = stroke_rgba[i] stroke_value = ( - escape(stroke_css) + fill_value + if authored_line + else escape(stroke_css) if stroke_css_constant else f"rgb({round(stroke_color[0] * 255)},{round(stroke_color[1] * 255)},{round(stroke_color[2] * 255)})" ) @@ -2926,7 +2947,18 @@ def read(index: int) -> np.ndarray: ) # `size` includes the edge; SVG strokes are centered on the path. marker_radius = max(0.0, float(radii[i]) - stroke_w / 2) - if builder is None: + if marker_glyph: + out.append( + f'{escape(str(marker_glyph))}" + ) + elif marker_path: + d = _authored_marker_path_d(marker_path, float(px[i]), float(py[i]), 2 * marker_radius) + authored_fill = fill_attr if bool(marker_path.get("filled", True)) else ' fill="none"' + out.append(f'') + elif builder is None: out.append( f'" @@ -3811,9 +3843,13 @@ def _legend( if kind == "scatter": symbol = style.get("symbol", "circle") builder = _SYMBOL_BUILDERS.get(symbol) + marker_path = style.get("marker_path") + marker_glyph = style.get("marker_glyph") radius = max(0.5, float(style.get("size", 8.0)) / 2.0) stroke_w = float(style.get("stroke_width", 0.0)) - line_symbol = symbol in {"plus_line", "x_line"} + line_symbol = symbol in {"plus_line", "x_line"} or ( + bool(marker_path) and not bool(marker_path.get("filled", True)) + ) if line_symbol and stroke_w <= 0: stroke_w = 1.0 stroke = _css(style.get("stroke"), color) if stroke_w or line_symbol else None @@ -3821,7 +3857,18 @@ def _legend( f' stroke="{escape(stroke)}" stroke-width="{_num(stroke_w)}"' if stroke else "" ) cxm = (hx0 + hx1) / 2 - if builder is None: + if marker_glyph: + rows.append( + f'{escape(str(marker_glyph))}' + ) + elif marker_path: + d = _authored_marker_path_d(marker_path, float(cxm), float(cy), 2 * radius) + fill = escape(color) if bool(marker_path.get("filled", True)) else "none" + rows.append(f'') + elif builder is None: rows.append( f'' diff --git a/python/xy/components.py b/python/xy/components.py index 066ad209..fdad0eac 100644 --- a/python/xy/components.py +++ b/python/xy/components.py @@ -589,6 +589,8 @@ def scatter( stroke: Any = None, stroke_width: Any = 0.0, _artist_alpha: Any = None, + _marker_path: Optional[dict[str, Any]] = None, + _marker_glyph: Optional[str] = None, style: Optional[dict[str, StyleValue]] = None, class_name: Optional[str] = None, key: Any = None, @@ -651,6 +653,8 @@ def scatter( "stroke": stroke, "stroke_width": stroke_width, "_artist_alpha": _artist_alpha, + "_marker_path": _marker_path, + "_marker_glyph": _marker_glyph, "x_axis": x_axis, "y_axis": y_axis, }, @@ -5138,6 +5142,8 @@ def _apply_scatter(fig: Figure, m: Mark, data: Any) -> None: stroke=m.props["stroke"], stroke_width=m.props["stroke_width"], _artist_alpha=m.props.get("_artist_alpha"), + _marker_path=m.props.get("_marker_path"), + _marker_glyph=m.props.get("_marker_glyph"), style=m.style, ) except Exception: diff --git a/python/xy/marks.py b/python/xy/marks.py index 0bc73641..9c117b3c 100644 --- a/python/xy/marks.py +++ b/python/xy/marks.py @@ -93,6 +93,31 @@ def _direct_symbols(value: Any, n: int, style_channels: dict[str, channels.Style return "circle" +def _validated_marker_path(value: Any) -> dict[str, Any]: + """Validate the private, bounded pyplot authored-marker contract.""" + if not isinstance(value, dict): + raise ValueError("scatter authored marker path must be a mapping") + contours = value.get("contours") + if not isinstance(contours, (list, tuple)) or not 1 <= len(contours) <= 32: + raise ValueError("scatter authored marker path must have 1-32 contours") + result: list[list[float]] = [] + total_vertices = 0 + for index, contour in enumerate(contours): + try: + values = np.asarray(contour, dtype=np.float64).reshape(-1) + except (TypeError, ValueError) as exc: + raise ValueError(f"scatter authored marker contour {index} must be numeric") from exc + if len(values) < 4 or len(values) % 2: + raise ValueError(f"scatter authored marker contour {index} needs x/y vertex pairs") + if not np.all(np.isfinite(values)) or np.any(np.abs(values) > 0.500001): + raise ValueError("scatter authored marker vertices must be finite and normalized") + total_vertices += len(values) // 2 + result.append([float(item) for item in values]) + if total_vertices > 96: + raise ValueError("scatter authored marker paths support at most 96 total vertices") + return {"contours": result, "filled": bool(value.get("filled", True))} + + def _stroke_geometry(css: Mapping[str, Any]) -> dict[str, str]: """The polyline cap key from compiled CSS, omitted at its default. @@ -1449,6 +1474,8 @@ def scatter( stroke: Any = None, stroke_width: Any = 0.0, _artist_alpha: Any = None, + _marker_path: Optional[dict[str, Any]] = None, + _marker_glyph: Optional[str] = None, style: styles.StyleMapping | None = None, ) -> "Figure": """Add a scatter trace. @@ -1539,6 +1566,14 @@ def scatter( size_ch = channels.resolve_size(size, n, range_px=size_range) point_style: dict[str, Any] = {"opacity": opacity_value} + if _marker_path is not None and _marker_glyph is not None: + raise ValueError("scatter accepts only one authored marker representation") + if _marker_path is not None: + point_style["marker_path"] = _validated_marker_path(_marker_path) + if _marker_glyph is not None: + if not isinstance(_marker_glyph, str) or len(_marker_glyph) != 1: + raise ValueError("scatter authored marker glyph must be one character") + point_style["marker_glyph"] = _marker_glyph if artist_alpha_value is not None: point_style["artist_alpha"] = artist_alpha_value if zoom_size_factor != 1.0: diff --git a/python/xy/pyplot/_axes.py b/python/xy/pyplot/_axes.py index daec5dde..acd4168e 100644 --- a/python/xy/pyplot/_axes.py +++ b/python/xy/pyplot/_axes.py @@ -45,6 +45,7 @@ scalar_float, ) from ._fmt import parse_fmt +from ._markers import marker_render_spec from ._mathtext import mathtext_italic_ranges, mathtext_to_unicode from ._plot_types import PlotTypeMixin from ._rc import RcParams, rcParams @@ -52,7 +53,6 @@ from ._transforms import Bbox, CoordinateTransform, IdentityTransform from ._translate import ( LINESTYLE_TO_DASH, - MARKER_TO_SYMBOL, MPL_DASH_PATTERN, check_unsupported, line_kwargs, @@ -1412,7 +1412,7 @@ def _plot_series( "y": y, "kwargs": { **{k: v for k, v in entry_kwargs.items() if k != "width"}, - "symbol": _marker_symbol(this_marker or "o"), + **marker_render_spec(this_marker or "o"), "size": marker_size_px, **marker_edge_style, **( @@ -1504,7 +1504,7 @@ def _plot_series( "kwargs": { "color": entry_kwargs["color"], "opacity": entry_kwargs["opacity"], - "symbol": _marker_symbol(this_marker), + **marker_render_spec(this_marker), # Matplotlib marker sizes are points while the # engine consumes CSS-pixel diameters. At the # default 96 dpi, 6 pt is 8 px. @@ -1645,7 +1645,8 @@ def scatter( edgecolors = edge_array[finite_color] x, y, c = xv, yv, cv - symbol = _marker_symbol(marker) if marker else "circle" + marker_spec = marker_render_spec(marker) if marker is not None else {"symbol": "circle"} + symbol = str(marker_spec["symbol"]) marker_path_px = marker_size_to_scatter_size( s, default=6.0 * self._point_scale(), @@ -1679,7 +1680,7 @@ def scatter( # core receives alpha through the override channel below. "opacity": scalar_float(alpha) if alpha is not None and np.isscalar(alpha) else 1.0, "name": str(label) if label is not None else None, - "symbol": symbol, + **marker_spec, } if alpha is not None: entry_kwargs["_artist_alpha"] = ( @@ -2869,6 +2870,16 @@ def _annotation(self, kind: str, args: tuple, kwargs: dict[str, Any]) -> dict[st alpha = kwargs.pop("alpha", None) lw = kwargs.pop("linewidth", kwargs.pop("lw", None)) label = kwargs.pop("label", None) + marker = kwargs.pop("marker", None) + marker_size = kwargs.pop("markersize", kwargs.pop("ms", None)) + marker_face = kwargs.pop("markerfacecolor", kwargs.pop("mfc", None)) + marker_edge = kwargs.pop("markeredgecolor", kwargs.pop("mec", None)) + marker_edge_width = kwargs.pop("markeredgewidth", kwargs.pop("mew", None)) + if kind not in {"hline", "vline"} and any( + value is not None + for value in (marker, marker_size, marker_face, marker_edge, marker_edge_width) + ): + raise TypeError(f"xy.pyplot ax{kind}() does not accept line marker keywords") if kind == "hline": span_start = kwargs.pop("xmin", 0.0) span_end = kwargs.pop("xmax", 1.0) @@ -2903,7 +2914,47 @@ def _annotation(self, kind: str, args: tuple, kwargs: dict[str, Any]) -> dict[st if dash not in (None, "none"): scaled = self._mpl_dash(dash, akw.get("width", rcParams["lines.linewidth"])) akw.setdefault("style", {})["dash"] = ",".join(map(str, scaled)) - return self._add(f"@{kind}", {"args": args, "kwargs": akw}) + marker_base_color = ( + resolve_color(color) if color is not None else self._next_color() if marker else None + ) + if marker_base_color is not None: + akw.setdefault("color", marker_base_color) + entry = self._add(f"@{kind}", {"args": args, "kwargs": akw}) + if marker is not None: + path_size = ( + float(rcParams["lines.markersize"] if marker_size is None else marker_size) + * self._point_scale() + ) + edge_visible = not (isinstance(marker_edge, str) and marker_edge.lower() == "none") + edge_width = ( + float( + rcParams["lines.markeredgewidth"] + if marker_edge_width is None + else marker_edge_width + ) + * self._point_scale() + if edge_visible + else 0.0 + ) + entry["endpoint_marker"] = { + **marker_render_spec(marker), + "size": path_size + edge_width, + "color": resolve_color( + marker_face if marker_face not in (None, "auto") else marker_base_color + ), + "opacity": float(alpha) if alpha is not None else 1.0, + **( + { + "stroke": resolve_color( + marker_edge if marker_edge not in (None, "auto") else marker_base_color + ), + "stroke_width": edge_width, + } + if edge_visible + else {} + ), + } + return entry def text( self, @@ -5777,10 +5828,36 @@ def _chart_children(self) -> list[Any]: children.append(getattr(xy, e["factory"])(*e["args"], **kw, **axis_kw)) elif kind == "@hline": children.append(xy.hline(*e["args"], **kw)) + if e.get("endpoint_marker"): + x_domain = self._axis_props("x").get("domain") or self._auto_domain("x") + span = kw.get("style") or {} + start = float(span.get("span_start", 0.0)) + end = float(span.get("span_end", 1.0)) + x0, x1 = map(float, x_domain) + children.append( + xy.scatter( + x=[x0 + start * (x1 - x0), x0 + end * (x1 - x0)], + y=[float(e["args"][0]), float(e["args"][0])], + **e["endpoint_marker"], + ) + ) elif kind == "@arrow": children.append(xy.arrow(*e["args"], **kw)) elif kind == "@vline": children.append(xy.vline(*e["args"], **kw)) + if e.get("endpoint_marker"): + y_domain = self._axis_props("y").get("domain") or self._auto_domain("y") + span = kw.get("style") or {} + start = float(span.get("span_start", 0.0)) + end = float(span.get("span_end", 1.0)) + y0, y1 = map(float, y_domain) + children.append( + xy.scatter( + x=[float(e["args"][0]), float(e["args"][0])], + y=[y0 + start * (y1 - y0), y0 + end * (y1 - y0)], + **e["endpoint_marker"], + ) + ) elif kind == "@x_band": children.append(xy.x_band(*e["args"], **kw)) elif kind == "@y_band": @@ -7264,10 +7341,12 @@ def _title_css_style(style: dict[str, Any], *, point_scale: float) -> dict[str, def _marker_symbol(marker: Any) -> str: - try: - return MARKER_TO_SYMBOL.get(marker, "circle") - except TypeError: - return "circle" + """Named-symbol helper retained for plot-type adapters. + + Authored markers need the complete renderer spec and are handled by + ``marker_render_spec`` at the direct plot/scatter call sites. + """ + return str(marker_render_spec(marker)["symbol"]) _SUPERSCRIPT_DIGITS = str.maketrans("0123456789-", "⁰¹²³⁴⁵⁶⁷⁸⁹⁻") diff --git a/python/xy/pyplot/_markers.py b/python/xy/pyplot/_markers.py new file mode 100644 index 00000000..56d86ae8 --- /dev/null +++ b/python/xy/pyplot/_markers.py @@ -0,0 +1,137 @@ +"""Matplotlib authored-marker normalization. + +The native scatter fast path intentionally has a small fixed symbol table. +Pyplot accepts a wider marker grammar, so this module compiles the bounded +parts of that grammar into renderer-neutral contours or a single embedded +font glyph. Unknown forms fail here instead of silently becoming circles. +""" + +from __future__ import annotations + +import math +from typing import Any + +import numpy as np + +from xy import _fontmetrics + +from ._mathtext import mathtext_to_unicode +from ._translate import MARKER_TO_SYMBOL, not_implemented + +_MAX_CONTOURS = 32 +_MAX_VERTICES = 64 + + +def marker_render_spec(marker: Any) -> dict[str, Any]: + """Return core scatter kwargs for one Matplotlib marker value.""" + try: + symbol = MARKER_TO_SYMBOL.get(marker) + except TypeError: + symbol = None + if symbol is not None: + return {"symbol": symbol} + + if isinstance(marker, str): + if marker.startswith("$") and marker.endswith("$"): + glyph = mathtext_to_unicode(marker) + if glyph == marker or len(glyph) != 1 or not _embedded_font_has(glyph): + raise not_implemented( + f"marker mathtext {marker!r}", + "a single supported math symbol such as r'$\\clubsuit$'", + ) + return {"symbol": "circle", "_marker_glyph": glyph} + raise ValueError(f"unsupported marker: {marker!r}") + + regular = _regular_marker(marker) + if regular is not None: + return {"symbol": "circle", "_marker_path": regular} + + try: + vertices = np.asarray(marker, dtype=np.float64) + except (TypeError, ValueError) as exc: + raise ValueError(f"unsupported marker: {marker!r}") from exc + if vertices.ndim != 2 or vertices.shape[1] != 2: + raise ValueError("custom marker vertices must have shape (N, 2)") + if not 3 <= len(vertices) <= _MAX_VERTICES: + raise ValueError( + f"custom marker paths require 3-{_MAX_VERTICES} vertices, got {len(vertices)}" + ) + if not np.all(np.isfinite(vertices)): + raise ValueError("custom marker vertices must be finite") + extent = float(np.max(np.abs(vertices))) + if extent <= 0: + raise ValueError("custom marker vertices must span a non-zero extent") + normalized = vertices * (0.5 / extent) + closed = bool(np.allclose(normalized[0], normalized[-1])) + if not closed: + normalized = np.vstack((normalized, normalized[0])) + return { + "symbol": "circle", + "_marker_path": { + "contours": [_flat(normalized)], + "filled": True, + }, + } + + +def _embedded_font_has(glyph: str) -> bool: + code = ord(glyph) + return _fontmetrics.FIRST <= code <= _fontmetrics.LAST or code in _fontmetrics.EXTRA_ADVANCES + + +def _regular_marker(marker: Any) -> dict[str, Any] | None: + if not isinstance(marker, tuple) or len(marker) not in {2, 3}: + return None + sides, style = marker[:2] + angle = marker[2] if len(marker) == 3 else 0.0 + if not isinstance(sides, (int, np.integer)) or not isinstance(style, (int, np.integer)): + return None + sides, style = int(sides), int(style) + if not 3 <= sides <= _MAX_CONTOURS: + raise ValueError(f"regular marker side count must be 3-{_MAX_CONTOURS}") + if style not in {0, 1, 2}: + raise ValueError("regular marker style must be 0 (polygon), 1 (star), or 2 (asterisk)") + try: + angle = float(angle) + except (TypeError, ValueError) as exc: + raise ValueError("regular marker angle must be a finite number") from exc + if not math.isfinite(angle): + raise ValueError("regular marker angle must be a finite number") + + # Matplotlib's regular markers start at 90 degrees in y-up marker space. + phase = math.radians(90.0 + angle) + outer = np.asarray( + [ + ( + 0.5 * math.cos(phase + 2 * math.pi * index / sides), + 0.5 * math.sin(phase + 2 * math.pi * index / sides), + ) + for index in range(sides) + ], + dtype=np.float64, + ) + if style == 2: + return { + "contours": [[0.0, 0.0, float(vertex[0]), float(vertex[1])] for vertex in outer], + "filled": False, + } + vertices = outer + if style == 1: + inner = np.asarray( + [ + ( + 0.25 * math.cos(phase + (2 * index + 1) * math.pi / sides), + 0.25 * math.sin(phase + (2 * index + 1) * math.pi / sides), + ) + for index in range(sides) + ], + dtype=np.float64, + ) + vertices = np.empty((sides * 2, 2), dtype=np.float64) + vertices[0::2], vertices[1::2] = outer, inner + vertices = np.vstack((vertices, vertices[0])) + return {"contours": [_flat(vertices)], "filled": True} + + +def _flat(vertices: np.ndarray) -> list[float]: + return [float(value) for value in vertices.reshape(-1)] diff --git a/python/xy/pyplot/_mathtext.py b/python/xy/pyplot/_mathtext.py index 5af98082..66d3e160 100644 --- a/python/xy/pyplot/_mathtext.py +++ b/python/xy/pyplot/_mathtext.py @@ -71,6 +71,10 @@ "int": "∫", "propto": "∝", "in": "∈", + "clubsuit": "♣", + "diamondsuit": "♦", + "heartsuit": "♥", + "spadesuit": "♠", "percent": "%", "%": "%", # TeX ignores ordinary spaces in math mode. Explicit spacing commands diff --git a/scripts/gen_font.py b/scripts/gen_font.py index 42005869..bd307d98 100644 --- a/scripts/gen_font.py +++ b/scripts/gen_font.py @@ -41,7 +41,7 @@ "⁰¹²³⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾ⁿⁱ" "₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎ₐₑₕᵢₖₗₘₙₒₚᵣₛₜᵤᵥₓ" "×·±∓≤≥≠≈∞√°→←∂∇∫∝∈−–—‘’“”…µ" - "§¶†‡•‰≡⌀" + "§¶†‡•‰≡⌀♣♦♥♠" + _LATIN + _CURRENCY # U+FFFD is the fallback the rasterizer substitutes for anything still diff --git a/spec/api/styling.md b/spec/api/styling.md index 6a1ed0c4..acb90581 100644 --- a/spec/api/styling.md +++ b/spec/api/styling.md @@ -1102,6 +1102,15 @@ antialiased SDF in the point shader, so shapes stay crisp at any size and the border is a true ring (a stroke width with no color borders in the mark color). Symbols compose with the color/size channels. +The Matplotlib shim additionally compiles its authored marker grammar into a +private bounded style representation: regular polygon/star/asterisk tuples and +finite custom vertex contours become normalized paths, while a mathtext form +that resolves to one glyph in the embedded font becomes a glyph marker. This +is a compatibility path, not an expansion of the public `symbol=` vocabulary; +unsupported or oversized authored forms raise instead of falling back to a +circle. Browser, SVG, native PNG, and legend renderers consume the same +representation. + Glyph geometry follows Matplotlib's marker paths, size convention included. `diamond` is the `square` glyph rotated 45°, so its half-diagonal is √2× the glyph radius — the rotated square keeps `square`'s side length at the same diff --git a/spec/matplotlib/compat.md b/spec/matplotlib/compat.md index 98a9557b..a902028e 100644 --- a/spec/matplotlib/compat.md +++ b/spec/matplotlib/compat.md @@ -51,7 +51,7 @@ dependency-free `triangles=` shorthand into Matplotlib's equivalent | matplotlib | notes | |---|---| | `plt.plot` / `ax.plot` | format strings (`'r--o'`), multiple series per call, implicit x, `label=`, `lw=`, `ls=`, `alpha=`, marker face/edge styling, directional `^`/`v`/`<`/`>` triangles and distinct `+`/`x` glyphs, `markevery`, and dependency-free affine *data* transforms (`Affine2D + ax.transData`); axes/figure-fraction transforms on data artists, partial fill styles, and cap/join policies fail loudly | -| `scatter(x, y, s=, c=, cmap=, vmin=, vmax=, alpha=, marker=, edgecolors=, plotnonfinite=)` | `s` (pt², area) maps to pixel diameter; numeric 1-D `c` remains a colormap encoding, while `N×3`/`N×4` face and edge colors, alpha arrays, sizes, and linewidth arrays stay in one collection. Explicit alpha replaces intrinsic RGBA alpha, matching Matplotlib; custom norms/marker paths fail loudly | +| `scatter(x, y, s=, c=, cmap=, vmin=, vmax=, alpha=, marker=, edgecolors=, plotnonfinite=)` | `s` (pt², area) maps to pixel diameter; numeric 1-D `c` remains a colormap encoding, while `N×3`/`N×4` face and edge colors, alpha arrays, sizes, and linewidth arrays stay in one collection. Explicit alpha replaces intrinsic RGBA alpha, matching Matplotlib. In addition to the named marker table, bounded regular `(sides, style[, angle])` tuples, finite custom vertex paths (up to 64 vertices), and single-glyph mathtext markers render distinctly in browser, SVG, PNG, and legends. Longer/multi-glyph authored paths and custom norms fail loudly | | `bar`, `barh`, `grouped_bar`, `bar_label` | string categories, stacking bases, per-bar face/edge color-alpha pairs and linewidths, plus iterable/indexable `BarContainer.patches` views whose setters mutate the parent batched trace | | `hist(bins=, range=, density=, cumulative=, weights=, orientation=, stacked=)` | Returns computed counts/edges; bar, step, and stepfilled families render in both vertical and horizontal orientations | | `hist2d`, `hexbin`, `ecdf` | 2D uniform binning uses the native Rust kernel; hexbin uses Matplotlib's two-offset-grid nearest-center assignment and six-triangle data-space cells, supports `C`, arbitrary scalar reducers, and `mincnt`, and retains only the bounded lattice rather than source points. `hist2d` view limits are the outer bin edges with no margin, matching Matplotlib's sticky mesh edges; non-uniform bins delegate to `pcolormesh` and autoscale through the quad-mesh path instead. `ecdf` carries the ordinary margin on the sample axis and is sticky at 0 and 1 on the cumulative axis | @@ -64,7 +64,7 @@ dependency-free `triangles=` shorthand into Matplotlib's equivalent | `quiver`, `barbs`, `streamplot` | Quiver supports Matplotlib's width-unit vocabulary independently from length scaling. Barbs use fixed-length staffs and Matplotlib's flag/full/half decomposition, including increments, rounding, empty glyphs, colors, sizes, flipping, and pivots. Streamplot uses a dependency-free adaptive Heun integrator with occupancy-aware seeding; `start_points`, `integration_direction`, `broken_streamlines`, integration step/error scales, array widths/colors, and `num_arrows` are honored | | `tripcolor`, `triplot`, `tricontour`, `tricontourf` | Explicit topology or native dependency-free Delaunay triangulation; indexed geometry and isolines stay in Rust | | `pie` / `pie_label` | Native pie/donut tessellation and the Matplotlib 3.11 `PieContainer` (`values`, `fracs`, grouped text labels), including dtype-preserving value formats, radial label rotation/alignment, and common text properties | -| `axhline` / `axvline` / `axhspan` / `axvspan`, `text`, `annotate`, `table` | Fractional span bounds plus data/axes/figure text coordinates are supported. `annotate(arrowprops=)` draws real arrows in every output: offset-point text becomes an engine callout (arrow pinned from label to point across zoom), data-coordinate text an arrow annotation; date-string coordinates convert on datetime axes. Arrowstyles map to head/tail shapes (`->` open V, `-\|>` filled, `\|-\|`/brackets bar caps, `fancy`/`simple`/`wedge` filled tapered shafts sized by the text's mutation scale) and `connectionstyle` arc3/angle3/angle become quadratic curves (corner rounding approximated); `alpha` dims the arrow only. `bbox=` becomes label box styles (fill/edge/round corners/`pad`) in browser and static exports; its `alpha` is the *patch* alpha and dims face and edge together, as Matplotlib's element `opacity` does, and `boxstyle="round"`/`round4` corners are rounded in SVG (`rx`) and native PNG as well as in the browser. An arrow-less `text`/`annotate` label is painted with `rcParams["text.color"]` in all three renderers rather than each renderer's own annotation-label default. Text is unclipped like Matplotlib (`clip_on=False`), and axes-fraction text right of the axes box (x > 1, e.g. seaborn-style row titles) reserves right margin in every exporter. `rotation=90/270` renders vertical text in browser, PNG, and SVG with Matplotlib's rotate-then-align box semantics; other angles rotate in browser and SVG output only (native PNG draws them horizontally) | +| `axhline` / `axvline` / `axhspan` / `axvspan`, `text`, `annotate`, `table` | Fractional span bounds plus data/axes/figure text coordinates are supported; `axhline`/`axvline` also retain direct endpoint `marker`/`ms`/`mfc`/`mec`/`mew` styling. `annotate(arrowprops=)` draws real arrows in every output: offset-point text becomes an engine callout (arrow pinned from label to point across zoom), data-coordinate text an arrow annotation; date-string coordinates convert on datetime axes. Arrowstyles map to head/tail shapes (`->` open V, `-\|>` filled, `\|-\|`/brackets bar caps, `fancy`/`simple`/`wedge` filled tapered shafts sized by the text's mutation scale) and `connectionstyle` arc3/angle3/angle become quadratic curves (corner rounding approximated); `alpha` dims the arrow only. `bbox=` becomes label box styles (fill/edge/round corners/`pad`) in browser and static exports; its `alpha` is the *patch* alpha and dims face and edge together, as Matplotlib's element `opacity` does, and `boxstyle="round"`/`round4` corners are rounded in SVG (`rx`) and native PNG as well as in the browser. An arrow-less `text`/`annotate` label is painted with `rcParams["text.color"]` in all three renderers rather than each renderer's own annotation-label default. Text is unclipped like Matplotlib (`clip_on=False`), and axes-fraction text right of the axes box (x > 1, e.g. seaborn-style row titles) reserves right margin in every exporter. `rotation=90/270` renders vertical text in browser, PNG, and SVG with Matplotlib's rotate-then-align box semantics; other angles rotate in browser and SVG output only (native PNG draws them horizontally) | | `from xy.pyplot import FacetGrid` (seaborn-shaped) | Row/column small multiples with seaborn's `map` contract (subset → activate panel → call the pyplot function), shared domains, edge-only axis labels, top-row column titles, and `margin_titles=True` rotated row titles. `hue=`/`palette=`, `col_wrap=`, `map_dataframe`, and `add_legend` fail loudly | | `xlabel` / `ylabel` / `title` / `suptitle` | Suptitles are retained in HTML and multi-panel PNG/SVG. `ylabel` sits clear of the y tick labels in every renderer: the left gutter is reserved from the measured advances of the tick labels and the rotated title rather than from a fixed constant, leaving Matplotlib's `0.4 em` (5.6 px at the 10 pt/100 dpi default) title-to-tick gap — see *Measured left gutter and the rotated y-axis title* in `spec/api/styling.md` for the formula and its two documented asymmetries | | `legend()` | `loc`, columns, title/font size/colors, frame styling, `borderpad`, `labelspacing`, `borderaxespad`, `fancybox`, `framealpha`, and `shadow` are retained across browser and static output. `loc='best'` scores the measured displayed legend box in Matplotlib location-code order using path vertices/crossings, collection offsets, and bar-rectangle overlaps. It resolves before the wire; pyplot rejects misspelled Matplotlib locations without narrowing core `xy.legend()`'s independent location vocabulary. Text-box scoring and bounded long-path sampling are documented in `spec/api/styling.md` § Legend placement | @@ -117,8 +117,9 @@ Matplotlib's caret arrows. ## Sharp edges -- Custom Matplotlib marker paths, arbitrary clipping graphs, and unsupported - collection gradients are rejected rather than silently approximated. +- Authored Matplotlib marker paths outside the bounded scatter contract, + arbitrary clipping graphs, and unsupported collection gradients are rejected + rather than silently approximated. - The shim's figure/axes bookkeeping adds ~50µs of fixed per-figure cost over the declarative API (measured 2026-07-14, M-series: +60% at 10k points, +26% at 100k — fixed cost over an ~85µs baseline, not O(n) work). diff --git a/src/font.rs b/src/font.rs index 2c03b7fb..3100acc3 100644 --- a/src/font.rs +++ b/src/font.rs @@ -10,15 +10,15 @@ pub const CELL_H: i32 = 19; pub const ASCENT: i32 = 15; /// Codepoints of the non-ASCII glyphs, sorted; GLYPHS row = 95 + index. -pub static EXTRA_CODEPOINTS: [u32; 329] = [ - 162, 163, 164, 165, 167, 176, 177, 178, 179, 181, 182, 183, 185, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 915, 916, 920, 923, 926, 928, 931, 933, 934, 936, 937, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 963, 964, 965, 966, 967, 968, 969, 7522, 7523, 7524, 7525, 8211, 8212, 8216, 8217, 8220, 8221, 8224, 8225, 8226, 8230, 8240, 8304, 8305, 8308, 8309, 8310, 8311, 8312, 8313, 8314, 8315, 8316, 8317, 8318, 8319, 8320, 8321, 8322, 8323, 8324, 8325, 8326, 8327, 8328, 8329, 8330, 8331, 8332, 8333, 8334, 8336, 8337, 8338, 8339, 8341, 8342, 8343, 8344, 8345, 8346, 8347, 8348, 8355, 8356, 8358, 8361, 8362, 8363, 8364, 8365, 8366, 8369, 8370, 8372, 8377, 8378, 8381, 8383, 8592, 8594, 8706, 8711, 8712, 8722, 8723, 8730, 8733, 8734, 8747, 8776, 8800, 8801, 8804, 8805, 8960, 65533, +pub static EXTRA_CODEPOINTS: [u32; 333] = [ + 162, 163, 164, 165, 167, 176, 177, 178, 179, 181, 182, 183, 185, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 915, 916, 920, 923, 926, 928, 931, 933, 934, 936, 937, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 963, 964, 965, 966, 967, 968, 969, 7522, 7523, 7524, 7525, 8211, 8212, 8216, 8217, 8220, 8221, 8224, 8225, 8226, 8230, 8240, 8304, 8305, 8308, 8309, 8310, 8311, 8312, 8313, 8314, 8315, 8316, 8317, 8318, 8319, 8320, 8321, 8322, 8323, 8324, 8325, 8326, 8327, 8328, 8329, 8330, 8331, 8332, 8333, 8334, 8336, 8337, 8338, 8339, 8341, 8342, 8343, 8344, 8345, 8346, 8347, 8348, 8355, 8356, 8358, 8361, 8362, 8363, 8364, 8365, 8366, 8369, 8370, 8372, 8377, 8378, 8381, 8383, 8592, 8594, 8706, 8711, 8712, 8722, 8723, 8730, 8733, 8734, 8747, 8776, 8800, 8801, 8804, 8805, 8960, 9824, 9827, 9829, 9830, 65533, ]; /// Per-glyph metrics at BASE_PX: (advance, w, h, left, top, cov_off, cov_len). /// `top` is the pixel offset of the glyph's top edge below the baseline /// (negative = above). Coverage bytes live in `COVERAGE[cov_off..][..cov_len]`, /// row-major w*h, 0..=255. -pub static GLYPHS: [(i32, i32, i32, i32, i32, u32, u32); 424] = [ +pub static GLYPHS: [(i32, i32, i32, i32, i32, u32, u32); 428] = [ (5, 0, 0, 0, 0, 0, 0), (6, 6, 12, 0, -12, 0, 72), (7, 7, 12, 0, -12, 72, 84), @@ -442,10 +442,14 @@ pub static GLYPHS: [(i32, i32, i32, i32, i32, u32, u32); 424] = [ (13, 13, 9, 0, -9, 48631, 117), (13, 13, 9, 0, -9, 48748, 117), (10, 10, 10, 0, -9, 48865, 100), - (16, 17, 17, 0, -15, 48965, 289), + (14, 14, 12, 0, -12, 48965, 168), + (14, 14, 12, 0, -12, 49133, 168), + (14, 14, 12, 0, -12, 49301, 168), + (14, 14, 12, 0, -12, 49469, 168), + (16, 17, 17, 0, -15, 49637, 289), ]; -pub static COVERAGE: [u8; 49254] = [ +pub static COVERAGE: [u8; 49926] = [ 0, 0, 148, 255, 0, 0, 0, 0, 148, 255, 0, 0, 0, 0, 148, 255, 0, 0, 0, 0, 148, 255, 0, 0, 0, 0, 148, 255, 0, 0, 0, 0, 143, 251, 0, 0, 0, 0, 130, 237, 0, 0, 0, 0, 115, 223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 148, 255, 0, 0, 0, 0, 148, 255, 0, 0, @@ -2486,7 +2490,35 @@ pub static COVERAGE: [u8; 49254] = [ 70, 4, 11, 189, 255, 87, 0, 24, 247, 52, 0, 0, 108, 238, 170, 176, 0, 83, 213, 0, 0, 108, 238, 51, 43, 238, 0, 77, 205, 0, 108, 237, 51, 0, 47, 247, 0, 24, 245, 138, 237, 50, 0, 0, 134, 186, 0, 0, 174, 255, 104, 0, 6, 112, 244, 52, 0, 45, 237, 139, 242, 237, 250, 219, 64, 0, 0, 0, 20, 0, 8, 46, - 41, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 41, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 149, 225, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 255, 255, 163, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 36, 239, 255, 255, 255, 99, 0, 0, 0, 0, 0, 0, 0, 12, 212, 255, 255, 255, 255, 248, 56, + 0, 0, 0, 0, 0, 0, 168, 255, 255, 255, 255, 255, 255, 229, 19, 0, 0, 0, 0, 52, 255, 255, 255, 255, + 255, 255, 255, 255, 136, 0, 0, 0, 0, 112, 255, 255, 255, 255, 255, 255, 255, 255, 200, 0, 0, 0, 0, 99, + 255, 255, 255, 200, 200, 255, 255, 255, 186, 0, 0, 0, 0, 11, 209, 255, 234, 47, 102, 177, 255, 244, 63, 0, + 0, 0, 0, 0, 6, 53, 16, 47, 134, 2, 51, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122, 205, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 132, 154, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, + 217, 255, 255, 253, 69, 0, 0, 0, 0, 0, 0, 0, 0, 77, 255, 255, 255, 255, 178, 0, 0, 0, 0, 0, + 0, 0, 0, 65, 255, 255, 255, 255, 163, 0, 0, 0, 0, 0, 0, 0, 0, 2, 215, 255, 255, 253, 54, 0, + 0, 0, 0, 0, 0, 8, 107, 152, 165, 255, 255, 211, 150, 132, 34, 0, 0, 0, 0, 188, 255, 255, 255, 255, + 255, 255, 255, 255, 239, 32, 0, 0, 39, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 122, 0, 0, 26, 255, + 255, 255, 255, 226, 227, 255, 255, 255, 255, 119, 0, 0, 0, 156, 255, 255, 252, 93, 122, 221, 255, 255, 225, 23, + 0, 0, 0, 2, 82, 112, 43, 48, 130, 15, 100, 105, 17, 0, 0, 0, 0, 0, 0, 0, 0, 119, 201, 0, + 0, 0, 0, 0, 0, 0, 0, 17, 127, 156, 77, 0, 0, 28, 136, 150, 54, 0, 0, 0, 15, 217, 255, 255, + 255, 94, 25, 235, 255, 255, 250, 69, 0, 0, 112, 255, 255, 255, 255, 233, 149, 255, 255, 255, 255, 196, 0, 0, + 140, 255, 255, 255, 255, 255, 249, 255, 255, 255, 255, 230, 0, 0, 100, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 193, 0, 0, 15, 238, 255, 255, 255, 255, 255, 255, 255, 255, 255, 94, 0, 0, 0, 86, 255, 255, 255, 255, + 255, 255, 255, 255, 185, 2, 0, 0, 0, 0, 139, 255, 255, 255, 255, 255, 255, 218, 17, 0, 0, 0, 0, 0, + 2, 183, 255, 255, 255, 255, 239, 39, 0, 0, 0, 0, 0, 0, 0, 16, 217, 255, 255, 251, 69, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 40, 241, 255, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 148, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 182, 238, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 255, 255, 205, 8, 0, 0, 0, 0, 0, + 0, 0, 0, 70, 253, 255, 255, 255, 156, 0, 0, 0, 0, 0, 0, 0, 29, 236, 255, 255, 255, 255, 255, 98, + 0, 0, 0, 0, 0, 6, 201, 255, 255, 255, 255, 255, 255, 247, 48, 0, 0, 0, 0, 29, 241, 255, 255, 255, + 255, 255, 255, 255, 98, 0, 0, 0, 0, 0, 83, 255, 255, 255, 255, 255, 255, 163, 0, 0, 0, 0, 0, 0, + 0, 142, 255, 255, 255, 255, 211, 10, 0, 0, 0, 0, 0, 0, 0, 4, 196, 255, 255, 242, 38, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 26, 232, 255, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 138, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 208, 250, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 208, 255, 255, 250, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 194, 143, 70, 41, 69, 172, 80, 0, 0, 0, 0, 0, 0, 0, 0, 19, 208, 128, 27, 119, 141, 55, 0, 172, 80, 0, 0, 0, 0, 0, 0, 19, 208, 255, 213, diff --git a/tests/pyplot/test_marker_fidelity.py b/tests/pyplot/test_marker_fidelity.py index 9412818d..9ed29cff 100644 --- a/tests/pyplot/test_marker_fidelity.py +++ b/tests/pyplot/test_marker_fidelity.py @@ -63,3 +63,77 @@ def test_svg_diamond_markers_match_matplotlib_path_extents( assert np.ptp(coordinates[:, 0]) == pytest.approx(expected_width, abs=0.01) assert np.ptp(coordinates[:, 1]) == pytest.approx(2**0.5 * 10, abs=0.01) + + +def test_scatter_authored_markers_keep_distinct_renderer_specs_and_exports(): + fig, ax = plt.subplots() + markers = ( + r"$\clubsuit$", + [[-1, -1], [1, -1], [1, 1], [-1, -1]], + (5, 0), + (5, 1), + (5, 2), + ) + for index, marker in enumerate(markers): + ax.scatter([index], [index], s=80, marker=marker, label=f"marker {index}") + ax.legend() + + payload, _blob = ax._build_chart(640, 480).figure().build_payload() + styles = [trace["style"] for trace in payload["traces"] if trace["kind"] == "scatter"] + assert styles[0]["marker_glyph"] == "♣" + assert styles[1]["marker_path"]["filled"] is True + assert len(styles[1]["marker_path"]["contours"][0]) == 8 + assert len(styles[2]["marker_path"]["contours"][0]) == 12 + assert len(styles[3]["marker_path"]["contours"][0]) == 22 + assert styles[4]["marker_path"]["filled"] is False + assert len(styles[4]["marker_path"]["contours"]) == 5 + assert ( + len({repr(style.get("marker_path") or style.get("marker_glyph")) for style in styles}) == 5 + ) + + svg = ax._build_chart(640, 480).figure().to_svg() + assert svg.count(">♣") >= 2 # mark plus legend handle + assert svg.count(" Date: Sun, 26 Jul 2026 23:04:01 -0700 Subject: [PATCH 03/17] Remove local PDSH evidence artifacts --- ...04_01-ordinal-14-raw-36-current-figure.png | Bin 44028 -> 0 bytes ...-ordinal-08-raw-23-source-figure-after.png | Bin 213626 -> 0 bytes ...ordinal-08-raw-23-source-figure-before.png | Bin 213626 -> 0 bytes .../04_07-ordinal-08-raw-23-target-figure.png | Bin 161786 -> 0 bytes ...04_10-ordinal-04-raw-14-current-figure.png | Bin 65675 -> 0 bytes artifacts/pdsh-shim-cells/capture_cells.py | 165 ------------------ artifacts/pdsh-shim-cells/provenance.json | 87 --------- 7 files changed, 252 deletions(-) delete mode 100644 artifacts/pdsh-shim-cells/04_01-ordinal-14-raw-36-current-figure.png delete mode 100644 artifacts/pdsh-shim-cells/04_07-ordinal-08-raw-23-source-figure-after.png delete mode 100644 artifacts/pdsh-shim-cells/04_07-ordinal-08-raw-23-source-figure-before.png delete mode 100644 artifacts/pdsh-shim-cells/04_07-ordinal-08-raw-23-target-figure.png delete mode 100644 artifacts/pdsh-shim-cells/04_10-ordinal-04-raw-14-current-figure.png delete mode 100644 artifacts/pdsh-shim-cells/capture_cells.py delete mode 100644 artifacts/pdsh-shim-cells/provenance.json diff --git a/artifacts/pdsh-shim-cells/04_01-ordinal-14-raw-36-current-figure.png b/artifacts/pdsh-shim-cells/04_01-ordinal-14-raw-36-current-figure.png deleted file mode 100644 index dff585cdc9d2de96d073b59cf65d516bea30c885..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44028 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%0A5m6tP9N1iN6l2V(!P&fPq+*PPb_L8Dg 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

c5h1mbONbdI5Xfy(l1vd~a8p-k-$u>jR5|9mB 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 z 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 str: - return hashlib.sha256(path.read_bytes()).hexdigest() - - -def _save(figure: Any, name: str) -> dict[str, Any]: - path = OUTPUT / name - figure.savefig(path, dpi=100) - return { - "file": path.name, - "bytes": path.stat().st_size, - "sha256": _sha256(path), - "figure_number": figure.number, - "axes_count": len(figure.axes), - } - - -def _xy_cells(notebook: dict[str, Any], through: int) -> list[tuple[int, dict[str, Any]]]: - return [ - (index, cell) - for index, cell in enumerate(notebook["cells"]) - if index <= through - and cell.get("cell_type") == "code" - and cell.get("metadata", {}).get("xy_pdsh_engine") == "xy" - ] - - -def _run(target: dict[str, Any]) -> dict[str, Any]: - plt.close("all") - path = ROOT / "examples" / "pdsh" / target["notebook"] - notebook = json.loads(path.read_text(encoding="utf-8")) - target_cell = notebook["cells"][target["raw_cell_index"]] - assert target_cell["metadata"]["xy_pdsh_source_id"] == target["source_id"] - namespace: dict[str, Any] = {"__name__": "__main__"} - before_mutation: dict[str, Any] | None = None - source_ownership: list[bool] = [] - - old_cwd = Path.cwd() - os.chdir(path.parent) - try: - for index, cell in _xy_cells(notebook, target["raw_cell_index"]): - source_id = cell["metadata"]["xy_pdsh_source_id"] - np.random.seed(zlib.crc32(f"{path.name}:{source_id}".encode())) - if index == target["raw_cell_index"] and target["execution_ordinal"] in {4, 14}: - # Preserve notebook variables but isolate the cell's own - # figure, matching an inline backend's close-after-display - # lifecycle instead of accumulating earlier cell figures. - plt.close("all") - if target["execution_ordinal"] == 8 and index == target["raw_cell_index"]: - source_figure = plt.figure(1) - before_mutation = _save( - source_figure, - "04_07-ordinal-08-raw-23-source-figure-before.png", - ) - logical = namespace["I"] - source_ownership = [ - not np.shares_memory(np.asarray(image.get_array()), logical) - and not np.shares_memory(np.asarray(image._entry["z"]), logical) - for image in source_figure.axes[0].images - ] - exec( - compile("".join(cell.get("source", [])), f"{path.name}:cell-{index}", "exec"), - namespace, - ) - finally: - os.chdir(old_cwd) - - current = plt.gcf() - if target["execution_ordinal"] == 14: - outputs = [_save(current, "04_01-ordinal-14-raw-36-current-figure.png")] - assertions = { - "fresh_axes_count": len(current.axes), - "new_axes_is_current": current.gca() is current.axes[-1], - "new_axes_title": current.axes[-1].get_title(), - } - elif target["execution_ordinal"] == 8: - assert before_mutation is not None - source_after = _save( - plt.figure(1), - "04_07-ordinal-08-raw-23-source-figure-after.png", - ) - target_output = _save(current, "04_07-ordinal-08-raw-23-target-figure.png") - outputs = [before_mutation, source_after, target_output] - assertions = { - "preexisting_image_arrays_owned": source_ownership, - "preexisting_figure_unchanged_by_I_mutation": ( - before_mutation["sha256"] == source_after["sha256"] - ), - "target_axes_count": len(current.axes), - } - else: - outputs = [_save(current, "04_10-ordinal-04-raw-14-current-figure.png")] - assertions = { - "fresh_axes_count": len(current.axes), - "new_axes_is_current": current.gca() is current.axes[-1], - "target_xscale": current.axes[-1]._scale_specs["x"]["name"], - "new_y_major_locator": type(current.axes[-1].yaxis.get_major_locator()).__name__, - } - return { - **target, - "source": "".join(target_cell.get("source", [])), - "outputs": outputs, - "assertions": assertions, - } - - -def main() -> None: - report = { - "base_commit": "a2ac10e", - "capture_scope": ( - "Exact affected xy cell after executing its preceding xy notebook variables. " - "04_01 and 04_10 close earlier figures before the target, matching inline " - "cell lifecycle; 04_07 additionally preserves its mutation-affected source " - "figure for before/after ownership evidence." - ), - "targets": [_run(target) for target in TARGETS], - } - (OUTPUT / "provenance.json").write_text( - json.dumps(report, indent=2) + "\n", - encoding="utf-8", - ) - print(json.dumps(report, indent=2)) - - -if __name__ == "__main__": - main() diff --git a/artifacts/pdsh-shim-cells/provenance.json b/artifacts/pdsh-shim-cells/provenance.json deleted file mode 100644 index 8a93f613..00000000 --- a/artifacts/pdsh-shim-cells/provenance.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "base_commit": "a2ac10e", - "capture_scope": "Exact affected xy cell after executing its preceding xy notebook variables. 04_01 and 04_10 close earlier figures before the target, matching inline cell lifecycle; 04_07 additionally preserves its mutation-affected source figure for before/after ownership evidence.", - "targets": [ - { - "notebook": "pdsh_04_01_simple_line_plots.ipynb", - "raw_cell_index": 36, - "execution_ordinal": 14, - "source_id": "cb1e1581032b452c9409d6c6813c49d1", - "source": "# xy.pyplot\nxy_ax = xy_plt.axes()\nxy_ax.plot(x, np.sin(x))\nxy_ax.set(xlim=(0, 10), ylim=(-2, 2), xlabel=\"x\", ylabel=\"sin(x)\", title=\"A Simple Plot\");", - "outputs": [ - { - "file": "04_01-ordinal-14-raw-36-current-figure.png", - "bytes": 44028, - "sha256": "ae13aedce1630671b83ab4514cd30557117b78d29c749996c7746865215990a7", - "figure_number": 1, - "axes_count": 1 - } - ], - "assertions": { - "fresh_axes_count": 1, - "new_axes_is_current": true, - "new_axes_title": "A Simple Plot" - } - }, - { - "notebook": "pdsh_04_07_customizing_colorbars.ipynb", - "raw_cell_index": 23, - "execution_ordinal": 8, - "source_id": "59bbdb311c014d738909a11f9e486628", - "source": "# xy.pyplot\n# make noise in 1% of the image pixels\nspeckles = np.random.random(I.shape) < 0.01\nI[speckles] = np.random.normal(0, 3, np.count_nonzero(speckles))\n\nxy_plt.figure(figsize=(10, 3.5))\n\nxy_plt.subplot(1, 2, 1)\nxy_plt.imshow(I, cmap=\"RdBu\")\nxy_plt.colorbar()\n\nxy_plt.subplot(1, 2, 2)\nxy_plt.imshow(I, cmap=\"RdBu\")\nxy_plt.colorbar(extend=\"both\")\nxy_plt.clim(-1, 1)", - "outputs": [ - { - "file": "04_07-ordinal-08-raw-23-source-figure-before.png", - "bytes": 213626, - "sha256": "6397a70be7f3856930805a80efc2eb5c4ea2bdead624a351961632bd1c585c91", - "figure_number": 1, - "axes_count": 1 - }, - { - "file": "04_07-ordinal-08-raw-23-source-figure-after.png", - "bytes": 213626, - "sha256": "6397a70be7f3856930805a80efc2eb5c4ea2bdead624a351961632bd1c585c91", - "figure_number": 1, - "axes_count": 1 - }, - { - "file": "04_07-ordinal-08-raw-23-target-figure.png", - "bytes": 161786, - "sha256": "3bf1b0638842ee0b1242ed106ecb5dac72804ada969d1275156173ea74d4a3ca", - "figure_number": 5, - "axes_count": 2 - } - ], - "assertions": { - "preexisting_image_arrays_owned": [ - true, - true - ], - "preexisting_figure_unchanged_by_I_mutation": true, - "target_axes_count": 2 - } - }, - { - "notebook": "pdsh_04_10_customizing_ticks.ipynb", - "raw_cell_index": 14, - "execution_ordinal": 4, - "source_id": "7623eae2785240b9bd12b16a66d81610", - "source": "# xy.pyplot\nxy_ax = xy_plt.axes()\nrng = np.random.default_rng(1701)\nxy_ax.plot(rng.random(50))\nxy_ax.grid()\n\nxy_ax.yaxis.set_major_locator(xy_plt.NullLocator())\nxy_ax.xaxis.set_major_formatter(xy_plt.NullFormatter())", - "outputs": [ - { - "file": "04_10-ordinal-04-raw-14-current-figure.png", - "bytes": 65675, - "sha256": "f042aed84b6ac92c579872a18f36317755b80b97b5ad66b5932c2246b888c72e", - "figure_number": 1, - "axes_count": 1 - } - ], - "assertions": { - "fresh_axes_count": 1, - "new_axes_is_current": true, - "target_xscale": "linear", - "new_y_major_locator": "NullLocator" - } - } - ] -} From 5a675e8a3645154876f688cce9fe340caf3922c2 Mon Sep 17 00:00:00 2001 From: Alek Petuskey Date: Sun, 26 Jul 2026 23:17:19 -0700 Subject: [PATCH 04/17] Preserve pyplot scatter sizes in legends --- js/src/50_chartview.ts | 36 +++++++++++++++------ python/xy/_svg.py | 17 +++++++--- python/xy/components.py | 3 ++ python/xy/marks.py | 7 +++++ python/xy/pyplot/_axes.py | 5 +++ tests/pyplot/test_marker_fidelity.py | 47 +++++++++++++++++++++++++++- 6 files changed, 101 insertions(+), 14 deletions(-) diff --git a/js/src/50_chartview.ts b/js/src/50_chartview.ts index 862b54c2..6a6f66c8 100644 --- a/js/src/50_chartview.ts +++ b/js/src/50_chartview.ts @@ -1827,6 +1827,13 @@ export class ChartView { // traces join the first row's hover-target list instead. const continuousRows = new Map(); s.traces.forEach((t, ti) => { + const style = { ...(t.style || {}) }; + const useTraceSize = style._legend_trace_size === true; + delete style._legend_trace_size; + if (t.kind === "scatter" && useTraceSize && + t.size?.mode === "constant" && Number.isFinite(Number(t.size.size))) { + style.size = Number(t.size.size); + } // A density-tier surface encodes count as alpha and wears the mean // point color (LOD doc §2), so it gets no colormap gradient swatch — // a gradient would claim color == density. A named density trace @@ -1835,7 +1842,7 @@ export class ChartView { const line = ["line", "segments", "step", "stairs", "errorbar"].includes(t.kind); if (t.color && t.color.mode === "categorical") { t.color.categories.forEach((cat, i) => - items.push({ swatch: t.color.palette[i], name: cat, symbol: t.kind === "scatter" ? (t.style?.symbol || "circle") : null, style: t.style || {}, traces: [ti], cat: i })); + items.push({ swatch: t.color.palette[i], name: cat, symbol: t.kind === "scatter" ? (style.symbol || "circle") : null, style, traces: [ti], cat: i })); } else if (t.color && t.color.mode === "continuous") { // Label precedence: explicit series name, then the encoding's own // declarative label (the color="column" idiom). No generic fallback: @@ -1850,14 +1857,14 @@ export class ChartView { existing.traces.push(ti); return; } - const item = { swatch: "gradient", cmap: t.color.colormap, name, symbol: t.kind === "scatter" ? (t.style?.symbol || "circle") : null, line, style: t.style || {}, traces: [ti] }; + const item = { swatch: "gradient", cmap: t.color.colormap, name, symbol: t.kind === "scatter" ? (style.symbol || "circle") : null, line, style, traces: [ti] }; continuousRows.set(key, item); items.push(item); } else if (t.name) { const c = (t.color && t.color.color) || (t.style && t.style.color); // Line-family kinds get a short line sample (honoring the dash), the // same handle the raster/SVG exporters draw — not a filled swatch. - items.push({ swatch: c, name: t.name, symbol: t.kind === "scatter" ? (t.style?.symbol || "circle") : null, line, style: t.style || {}, traces: [ti] }); + items.push({ swatch: c, name: t.name, symbol: t.kind === "scatter" ? (style.symbol || "circle") : null, line, style, traces: [ti] }); } }); } @@ -1940,6 +1947,10 @@ export class ChartView { svg.setAttribute("viewBox", "0 0 18 14"); svg.setAttribute("width", "18"); svg.setAttribute("height", "14"); + svg.style.overflow = "visible"; + const requestedMarkerSize = Number(it.style?.size); + const hasMarkerSize = Number.isFinite(requestedMarkerSize) && requestedMarkerSize >= 0; + const markerSize = hasMarkerSize ? requestedMarkerSize : 9; const paths = { square: "M4.5 2.5h9v9h-9z", diamond: "M9 2l5 5-5 5-5-5z", thin_diamond: "M9 2l3 5-3 5-3-5z", @@ -1958,7 +1969,7 @@ export class ChartView { text.setAttribute("x", "9"); text.setAttribute("y", "7"); text.setAttribute("font-family", "DejaVu Sans"); - text.setAttribute("font-size", "10"); + text.setAttribute("font-size", String(markerSize)); text.setAttribute("text-anchor", "middle"); text.setAttribute("dominant-baseline", "central"); text.textContent = String(it.style.marker_glyph); @@ -1972,17 +1983,24 @@ export class ChartView { const commands = []; for (const contour of it.style.marker_path.contours || []) { for (let offset = 0; offset + 1 < contour.length; offset += 2) { - const x = 9 + 9 * Number(contour[offset]); - const y = 7 - 9 * Number(contour[offset + 1]); + const x = 9 + markerSize * Number(contour[offset]); + const y = 7 - markerSize * Number(contour[offset + 1]); commands.push(`${offset === 0 ? "M" : "L"}${x} ${y}`); } if (it.style.marker_path.filled) commands.push("Z"); } path.setAttribute("d", commands.join(" ")); } else if (it.symbol === "circle" || it.symbol === "point" || it.symbol === "pixel") { - if (it.symbol === "pixel") path.setAttribute("d", "M8.5 6.5h1v1h-1z"); - else path.setAttribute("d", `M9 ${it.symbol === "point" ? 4.75 : 2.5}a${it.symbol === "point" ? 2.25 : 4.5} ${it.symbol === "point" ? 2.25 : 4.5} 0 1 0 0 ${it.symbol === "point" ? 4.5 : 9}a${it.symbol === "point" ? 2.25 : 4.5} ${it.symbol === "point" ? 2.25 : 4.5} 0 1 0 0 -${it.symbol === "point" ? 4.5 : 9}`); - } else path.setAttribute("d", paths[it.symbol] || paths.square); + const radius = markerSize / 2; + if (it.symbol === "pixel") path.setAttribute("d", `M${9 - radius} ${7 - radius}h${markerSize}v${markerSize}h-${markerSize}z`); + else path.setAttribute("d", `M9 ${7 - radius}a${radius} ${radius} 0 1 0 0 ${markerSize}a${radius} ${radius} 0 1 0 0 -${markerSize}`); + } else { + path.setAttribute("d", paths[it.symbol] || paths.square); + if (hasMarkerSize) { + const scale = markerSize / 9; + path.setAttribute("transform", `translate(9 7) scale(${scale}) translate(-9 -7)`); + } + } const lineMarker = it.symbol.endsWith("_line") || (it.style?.marker_path && !it.style.marker_path.filled); sw.style.setProperty( diff --git a/python/xy/_svg.py b/python/xy/_svg.py index ab84e66e..78534670 100644 --- a/python/xy/_svg.py +++ b/python/xy/_svg.py @@ -3586,16 +3586,25 @@ def legend_items(traces: list[dict], palette: Sequence[str] = DEFAULT_PALETTE) - exactly as `ChartView._legend` does for the live client.""" items: list[dict] = [] for trace in traces: + style = dict(trace.get("style") or {}) + use_trace_size = bool(style.pop("_legend_trace_size", False)) + size = trace.get("size") or {} + if trace.get("kind") == "scatter" and use_trace_size and size.get("mode") == "constant": + style["size"] = float(size.get("size", 8.0)) color = trace.get("color") or {} if color.get("mode") == "categorical": categories = color.get("categories") or [] entry_palette = list(color.get("palette") or palette) or list(palette) for index, category in enumerate(categories): - style = dict(trace.get("style") or {}) - style["color"] = entry_palette[index % len(entry_palette)] - items.append({"name": str(category), "kind": trace.get("kind"), "style": style}) + item_style = dict(style) + item_style["color"] = entry_palette[index % len(entry_palette)] + items.append( + {"name": str(category), "kind": trace.get("kind"), "style": item_style} + ) elif trace.get("name"): - items.append(trace) + item = dict(trace) + item["style"] = style + items.append(item) return items diff --git a/python/xy/components.py b/python/xy/components.py index fdad0eac..181e5cfd 100644 --- a/python/xy/components.py +++ b/python/xy/components.py @@ -591,6 +591,7 @@ def scatter( _artist_alpha: Any = None, _marker_path: Optional[dict[str, Any]] = None, _marker_glyph: Optional[str] = None, + _legend_trace_size: bool = False, style: Optional[dict[str, StyleValue]] = None, class_name: Optional[str] = None, key: Any = None, @@ -655,6 +656,7 @@ def scatter( "_artist_alpha": _artist_alpha, "_marker_path": _marker_path, "_marker_glyph": _marker_glyph, + "_legend_trace_size": _legend_trace_size, "x_axis": x_axis, "y_axis": y_axis, }, @@ -5144,6 +5146,7 @@ def _apply_scatter(fig: Figure, m: Mark, data: Any) -> None: _artist_alpha=m.props.get("_artist_alpha"), _marker_path=m.props.get("_marker_path"), _marker_glyph=m.props.get("_marker_glyph"), + _legend_trace_size=bool(m.props.get("_legend_trace_size")), style=m.style, ) except Exception: diff --git a/python/xy/marks.py b/python/xy/marks.py index 9c117b3c..4e17a56e 100644 --- a/python/xy/marks.py +++ b/python/xy/marks.py @@ -1476,6 +1476,7 @@ def scatter( _artist_alpha: Any = None, _marker_path: Optional[dict[str, Any]] = None, _marker_glyph: Optional[str] = None, + _legend_trace_size: bool = False, style: styles.StyleMapping | None = None, ) -> "Figure": """Add a scatter trace. @@ -1574,6 +1575,12 @@ def scatter( if not isinstance(_marker_glyph, str) or len(_marker_glyph) != 1: raise ValueError("scatter authored marker glyph must be one character") point_style["marker_glyph"] = _marker_glyph + if _legend_trace_size: + # Pyplot's scalar ``s=`` is an authored marker area, and its + # automatic legend must keep the resulting diameter. Native xy + # legends retain their fixed swatch semantics unless this private + # shim flag opts the trace into size derivation. + point_style["_legend_trace_size"] = True if artist_alpha_value is not None: point_style["artist_alpha"] = artist_alpha_value if zoom_size_factor != 1.0: diff --git a/python/xy/pyplot/_axes.py b/python/xy/pyplot/_axes.py index acd4168e..35165a6d 100644 --- a/python/xy/pyplot/_axes.py +++ b/python/xy/pyplot/_axes.py @@ -5754,6 +5754,11 @@ def _chart_children(self) -> list[Any]: children.append(xy.line(x=x, y=y, **kw, **axis_kw)) elif kind == "scatter": kw = dict(kw) + if np.isscalar(kw.get("size")): + # The core keeps scatter size as a channel rather than a + # mark style. Opt this pyplot trace into carrying that + # constant through automatic legend-item derivation. + kw["_legend_trace_size"] = True if "_artist_alpha" in kw: # pyplot alpha overrides intrinsic RGBA. Core opacity is # an independent multiplier, so do not apply it twice. diff --git a/tests/pyplot/test_marker_fidelity.py b/tests/pyplot/test_marker_fidelity.py index 9ed29cff..f6be8503 100644 --- a/tests/pyplot/test_marker_fidelity.py +++ b/tests/pyplot/test_marker_fidelity.py @@ -6,8 +6,9 @@ import numpy as np import pytest +import xy import xy.pyplot as plt -from xy import _svg +from xy import _raster, _svg def teardown_function(): @@ -98,6 +99,50 @@ def test_scatter_authored_markers_keep_distinct_renderer_specs_and_exports(): assert png.startswith(b"\x89PNG\r\n\x1a\n") +def test_constant_scatter_sizes_survive_automatic_legend_derivation(monkeypatch): + fig, ax = plt.subplots() + areas = np.asarray([100.0, 300.0, 500.0]) + for area in areas: + ax.scatter([], [], s=area, c="black", linewidth=0, label=f"{area:g} km²") + ax.legend(frameon=False, labelspacing=1, title="City Area") + + core = ax._build_chart(640, 480).figure() + spec, blob = core.build_payload() + expected_sizes = np.sqrt(areas) * (100 / 72) + items = _svg.legend_items(spec["traces"]) + np.testing.assert_allclose( + [item["style"]["size"] for item in items], + expected_sizes, + ) + + svg = core.to_svg() + radii = [float(value) for value in re.findall(r"]+r=\"([^\"]+)\"", svg)] + np.testing.assert_allclose(radii, expected_sizes / 2, atol=0.01) + + raster_radii = [] + original_point = _raster._Cmd.point + + def record_point(self, x, y, radius, symbol, fill, stroke_width, stroke): + raster_radii.append(radius) + return original_point(self, x, y, radius, symbol, fill, stroke_width, stroke) + + monkeypatch.setattr(_raster._Cmd, "point", record_point) + _raster.render_raster(spec, blob, scale=1) + np.testing.assert_allclose(raster_radii, expected_sizes / 2) + + +def test_native_core_scatter_keeps_fixed_legend_swatch_semantics(): + chart = xy.scatter_chart( + xy.scatter([], [], size=32, name="native"), + xy.legend(), + ) + spec, _ = chart.figure().build_payload() + [item] = _svg.legend_items(spec["traces"]) + + assert "_legend_trace_size" not in spec["traces"][0]["style"] + assert "size" not in item["style"] + + def test_authored_marker_grammar_fails_loudly_outside_bounded_contract(): _, ax = plt.subplots() with pytest.raises(NotImplementedError, match="marker mathtext"): From 01ced15662049558ecf6e1c6b1cb4d1a08cd4146 Mon Sep 17 00:00:00 2001 From: Alek Petuskey Date: Sun, 26 Jul 2026 23:24:21 -0700 Subject: [PATCH 05/17] Align cached axes in static overlays --- python/xy/pyplot/_mplfig.py | 31 +++++++++++++++++---- spec/matplotlib/compat-changelog.md | 4 +++ spec/matplotlib/compat.md | 2 +- tests/pyplot/test_frame_geometry.py | 43 +++++++++++++++++++++++++++++ 4 files changed, 73 insertions(+), 7 deletions(-) diff --git a/python/xy/pyplot/_mplfig.py b/python/xy/pyplot/_mplfig.py index 83c77008..dc1f2d9e 100644 --- a/python/xy/pyplot/_mplfig.py +++ b/python/xy/pyplot/_mplfig.py @@ -950,20 +950,39 @@ def _charts(self) -> list[Any]: # including the axes title, which matplotlib draws above the # axes without moving its position. left, top, right, bottom = _panel_chrome(ax, plot_w) - ax._absolute_plot_ratio = plot_w / plot_h + plot_ratio = plot_w / plot_h + plot_box = (left, top, plot_w, plot_h) # Pin the plot rect inside the panel: the exporters place the # panel assuming its plot box sits at exactly this inset, so # the renderers must not pick their own label-aware margins. - ax._plot_box_px = (left, top, plot_w, plot_h) + # + # A chart may already be cached from when this was the figure's + # only axes. Adding an overlapping axes switches the figure to + # absolute composition, where the same Matplotlib axes rectangle + # needs a smaller chrome-inclusive panel. Reusing the old chart + # offsets its ticks and labels even though the plot boxes overlap. + if ax._plot_box_px != plot_box or ax._absolute_plot_ratio != plot_ratio: + ax._plot_box_px = plot_box + ax._absolute_plot_ratio = plot_ratio + ax._chart = None charts.append( ax._build_chart(round(plot_w + left + right), round(plot_h + top + bottom)) ) else: widths, heights = self._grid_cell_sizes() - charts = [ - ax._build_chart(widths[index % self._ncols], heights[index // self._ncols]) - for index, ax in enumerate(self._axes) - ] + charts = [] + for index, ax in enumerate(self._axes): + # Removing an overlay can return a one-axes figure to ordinary + # (non-absolute) composition. Drop the absolute geometry and + # its cached chart together so the remaining axes expands back + # to the figure canvas. + if ax._plot_box_px is not None or ax._absolute_plot_ratio is not None: + ax._plot_box_px = None + ax._absolute_plot_ratio = None + ax._chart = None + charts.append( + ax._build_chart(widths[index % self._ncols], heights[index // self._ncols]) + ) if charts and (self._sharex or self._sharey): figures = [chart.figure() for chart in charts] linked: list[str] = [] diff --git a/spec/matplotlib/compat-changelog.md b/spec/matplotlib/compat-changelog.md index 5cfca8c3..0aac17c3 100644 --- a/spec/matplotlib/compat-changelog.md +++ b/spec/matplotlib/compat-changelog.md @@ -10,6 +10,10 @@ which covers user-visible releases across the whole package. `Figure.add_subplot()` calls now create overlay axes, while `plt.subplot()` reuses the first matching axes and no-argument `plt.axes()` creates a fresh axes. This restores the state boundaries used by PDSH 04.01 and 04.10. +- Static PNG/SVG composition rebuilds cached panels when a fresh axes changes + the figure to or from overlapping absolute placement. Same-position axes + therefore share one frame: the later opaque axes patch covers the older + plot, while their ticks and labels no longer drift into duplicated chrome. - `imshow()` now copies both its logical source and prepared render arrays. `AxesImage.set_data()` updates `get_array()` and rebuilds render data through the initial normalization/origin/resampling path, so later mutation of either diff --git a/spec/matplotlib/compat.md b/spec/matplotlib/compat.md index a902028e..1fa27970 100644 --- a/spec/matplotlib/compat.md +++ b/spec/matplotlib/compat.md @@ -77,7 +77,7 @@ dependency-free `triangles=` shorthand into Matplotlib's equivalent | `twinx()`, `secondary_xaxis()`, `secondary_yaxis()` | second data axes and linked tick-only secondary axes with callable forward/inverse conversions. Secondary-axis ticks are evenly spaced conversions of the primary domain (not Matplotlib's secondary-unit locators) and currently reach the interactive HTML client only — PNG/SVG export does not draw them yet | | `fig, ax = plt.subplots()`; `plt.subplots(n, m, figsize=, dpi=, squeeze=, sharex=, sharey=)` | Grid renders as CSS-grid HTML and stitched PNG/SVG; shared axes use common domains and live linked pan/zoom. `Figure.subplots_adjust(left=, right=, top=, bottom=, wspace=, hspace=)` moves the SubplotParams frame: the grid resolves to explicit figure rectangles and every exporter (HTML, PNG, SVG) positions panels at those rectangles | | `Axes.get_position(original=False)` and the rendered axes frame | Supported subplot and free-form axes report their live figure rectangle and render on it. `original=True` returns the allocated rectangle before an adjustable-box aspect correction; the default applies the correction and its anchor, matching Matplotlib. Grid cells resolve under the live SubplotParams (`wspace`/`hspace`, width/height ratios), while explicit `add_axes`/`set_position` rectangles take precedence until a later layout adjustment. Titles, top-side x axes (`matshow`), and secondary-y gutters grow the surrounding allocation instead of moving the frame. **Known exception:** an axes carrying a colorbar keeps label-aware margins because xy and Matplotlib currently reserve the colorbar strip through different layout paths | -| `fig.add_subplot(2, 2, 1)` / `add_subplot(221)` | `Figure.add_subplot` creates a new axes even when the figure already contains the same spec; stateful `plt.subplot` instead activates the first matching axes in figure order. A no-argument `plt.axes()` creates a fresh default-position axes | +| `fig.add_subplot(2, 2, 1)` / `add_subplot(221)` | `Figure.add_subplot` creates a new axes even when the figure already contains the same spec; stateful `plt.subplot` instead activates the first matching axes in figure order. A no-argument `plt.axes()` creates a fresh default-position axes. Same-position axes share one static-export frame and stack in figure order, so the later opaque axes patch covers the older plot without offsetting duplicate tick/label chrome | | `plt.subplot_mosaic([['A','B'],['C','C']])` / `Figure.subplot_mosaic` | Row sequences (a list of equal-length label strings, or nested label lists) resolve to a uniform grid; each distinct label, in first-appearance order, binds to the next cell, returning `(fig, {label: Axes})` with `figsize=`/`dpi=` sizing the figure. Repeated labels do not span and `'.'` does not blank a cell — the grid keeps one axes per cell — and Matplotlib's single-string forms (`'AB;CC'`, newline-separated blocks) are not parsed into rows | | `gca` / `gcf` / `sca` / `figure(num)` / `close(...)` | matplotlib's implicit-state semantics | | `savefig('x.png' / '.svg' / '.html', dpi=)` | Browser-free PNG/SVG supports both single and multi-panel figures; file-like targets require an explicit `format=` and unsupported metadata/layout/export formats fail loudly | diff --git a/tests/pyplot/test_frame_geometry.py b/tests/pyplot/test_frame_geometry.py index a08124f2..c3771f99 100644 --- a/tests/pyplot/test_frame_geometry.py +++ b/tests/pyplot/test_frame_geometry.py @@ -11,6 +11,7 @@ from __future__ import annotations import io +import re import numpy as np import pytest @@ -84,6 +85,48 @@ def test_axes_title_does_not_move_the_rendered_frame(): assert titled == pytest.approx(plain, abs=0.5) +def test_cached_axes_aligns_with_same_position_overlay_in_static_exports(): + """A cached one-panel chart must be rebuilt for absolute composition. + + Matplotlib draws a later same-position Axes above the first one. Its opaque + patch covers the older plot, while matching ticks and labels share exactly + one axes rectangle instead of appearing as offset duplicate chrome. + """ + fig, first = plt.subplots(figsize=(6.4, 4.8), dpi=100) + first.plot([0, 1], [0, 1]) + first.set(xlabel="x", ylabel="first y", title="first title") + + # Prime the single-panel cache before plt.axes() changes the figure to the + # absolute multi-axes composition path. + fig.savefig(io.BytesIO(), format="png") + + second = plt.axes() + second.plot([0, 1], [1, 0]) + second.set(xlabel="x", ylabel="second y", title="second title") + + png = io.BytesIO() + svg = io.BytesIO() + fig.savefig(png, format="png") + fig.savefig(svg, format="svg") + + first_rect, second_rect = _plot_rects(fig) + assert first_rect == pytest.approx(second_rect, abs=0.5) + assert png.getvalue().startswith(b"\x89PNG\r\n\x1a\n") + + nested_sizes = re.findall( + rb'', + svg.getvalue(), + ) + assert len(nested_sizes) == 2 + assert nested_sizes[0] == nested_sizes[1] + + fig.delaxes(second) + fig.savefig(io.BytesIO(), format="png") + assert first._plot_box_px is None + assert _plot_rects(fig)[0] == pytest.approx(_reported_rects(fig)[0], abs=0.5) + + @pytest.mark.parametrize( "figsize", [(6.4, 4.8), (3.2, 2.4), (12.0, 3.0), (5.0, 5.0)], From 8b83b3b2080c3fccfa789032907bf2f8d83dbc10 Mon Sep 17 00:00:00 2001 From: Alek Petuskey Date: Mon, 27 Jul 2026 02:02:00 -0700 Subject: [PATCH 06/17] Document private scatter factory parameters --- python/xy/components.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/python/xy/components.py b/python/xy/components.py index 181e5cfd..7c863148 100644 --- a/python/xy/components.py +++ b/python/xy/components.py @@ -622,6 +622,9 @@ def scatter( stroke: Optional marker outline color. stroke_width: Marker outline width in pixels. _artist_alpha: Internal Matplotlib alpha override, scalar or per marker. + _marker_path: Internal authored marker-path payload for Matplotlib adapters. + _marker_glyph: Internal single-glyph marker payload for Matplotlib adapters. + _legend_trace_size: Whether a Matplotlib legend derives marker size from this trace. style: Mark style overrides. class_name: Adapter-only trace metadata; it does not style canvas geometry. key: Stable row identities, or a column name resolved from ``data``. From 5d38ca4c9d0c5d1ff1430744e0b6cc383697d5bf Mon Sep 17 00:00:00 2001 From: Alek Petuskey Date: Mon, 27 Jul 2026 07:01:30 -0700 Subject: [PATCH 07/17] Fix authored marker renderer review findings --- js/src/45_lod.ts | 6 + js/src/50_chartview.ts | 35 +++- js/src/51_annotations.ts | 220 +++++++++++++++++++++++--- python/xy/_raster.py | 28 +++- python/xy/pyplot/_artists.py | 6 + python/xy/pyplot/_axes.py | 45 +++++- tests/pyplot/test_artist_mutations.py | 17 ++ tests/pyplot/test_marker_fidelity.py | 99 ++++++++++++ tests/test_static_client_security.py | 39 +++++ 9 files changed, 456 insertions(+), 39 deletions(-) diff --git a/js/src/45_lod.ts b/js/src/45_lod.ts index ebb92a93..17fce771 100644 --- a/js/src/45_lod.ts +++ b/js/src/45_lod.ts @@ -849,6 +849,7 @@ export function lodApplyDrill(view, g, upd, buffers) { // exactly as this fresh reply does below (§34 continuity across T13 swaps). d._cpuX = xs; d._cpuY = ys; + d._cpu = { x: xs, y: ys, xMeta: d.xMeta, yMeta: d.yMeta }; // The kernel's exactness claim (§28 Invariant L2): reduction "none" means // the subset IS every point in the window — the fact that arms T12's // zoom-in request elision. Anything else (or a reply that doesn't say) @@ -874,6 +875,8 @@ export function lodApplyDrill(view, g, upd, buffers) { const colorValues = upd.color.dtype === "u8" ? view._asU8(buffers[upd.color.buf]) : view._asF32(buffers[upd.color.buf]); + if (d.colorMode === 3) d._cpu.rgba = colorValues; + else d._cpu.color = colorValues; const colorBufferName = d.colorMode === 3 ? "rgbaBuf" : "cBuf"; if (!d[colorBufferName]) d[colorBufferName] = gl.createBuffer(); view._tagChannelBuf(d[colorBufferName], colorValues, d.colorMode === 1); @@ -893,6 +896,7 @@ export function lodApplyDrill(view, g, upd, buffers) { const sizeValues = upd.size.dtype === "u8" ? view._asU8(buffers[upd.size.buf]) : view._asF32(buffers[upd.size.buf]); + d._cpu.size = sizeValues; if (!d.sBuf) d.sBuf = gl.createBuffer(); view._tagChannelBuf(d.sBuf, sizeValues, true); gl.bindBuffer(gl.ARRAY_BUFFER, d.sBuf); @@ -923,6 +927,7 @@ export function lodApplyDrill(view, g, upd, buffers) { copy("artist_alpha", 1); copy("stroke_width", 2, view.dpr); copy("symbol", 3); + d._cpuStyle = values; if (!d.styleBuf) d.styleBuf = gl.createBuffer(); d.styleBuf._fcType = gl.FLOAT; gl.bindBuffer(gl.ARRAY_BUFFER, d.styleBuf); @@ -930,6 +935,7 @@ export function lodApplyDrill(view, g, upd, buffers) { } if (upd.stroke && upd.stroke.mode === "direct_rgba") { const values = view._asU8(buffers[upd.stroke.buf]); + d._cpuStroke = values; if (!d.strokeBuf) d.strokeBuf = gl.createBuffer(); d.strokeBuf._fcType = gl.UNSIGNED_BYTE; gl.bindBuffer(gl.ARRAY_BUFFER, d.strokeBuf); diff --git a/js/src/50_chartview.ts b/js/src/50_chartview.ts index 6a6f66c8..71304beb 100644 --- a/js/src/50_chartview.ts +++ b/js/src/50_chartview.ts @@ -2896,6 +2896,10 @@ export class ChartView { copy("artist_alpha", 1); copy(widthName, 2, this.dpr); copy("symbol", 3); + // Canvas-authored markers consume the same canonical style rows as the + // point shader. Keep them CPU-readable instead of treating styleBuf as + // the only copy; filtering may still gather/reupload from this array. + g._cpuStyle = values; g.styleBuf = this._upload(values); // Width rows are baked at the dpr in force right now. Record it so the // streaming-append fast path can tell whether a later tail upload would @@ -2914,7 +2918,8 @@ export class ChartView { g.radiusBuf = this._upload(values); } if (t.stroke && t.stroke.mode === "direct_rgba") { - g.strokeBuf = this._upload(this._columnView(buffer, this.spec.columns[t.stroke.buf])); + g._cpuStroke = this._columnView(buffer, this.spec.columns[t.stroke.buf]); + g.strokeBuf = this._upload(g._cpuStroke); } } @@ -3077,16 +3082,21 @@ export class ChartView { size: (sample.size && sample.size.size) || 4.0, sizeRange: [2, 18], }; + const xValues = this._asF32(buffers[sample.x.buf]); + const yValues = this._asF32(buffers[sample.y.buf]); + s._cpu = { x: xValues, y: yValues, xMeta: s.xMeta, yMeta: s.yMeta }; gl.bindBuffer(gl.ARRAY_BUFFER, s.xBuf); - gl.bufferData(gl.ARRAY_BUFFER, this._asF32(buffers[sample.x.buf]), gl.STATIC_DRAW); + gl.bufferData(gl.ARRAY_BUFFER, xValues, gl.STATIC_DRAW); gl.bindBuffer(gl.ARRAY_BUFFER, s.yBuf); - gl.bufferData(gl.ARRAY_BUFFER, this._asF32(buffers[sample.y.buf]), gl.STATIC_DRAW); + gl.bufferData(gl.ARRAY_BUFFER, yValues, gl.STATIC_DRAW); if (sample.color && sample.color.buf !== undefined) { s.colorMode = sample.color.mode === "continuous" ? 1 : (sample.color.mode === "categorical" ? 2 : 3); const colorValues = sample.color.dtype === "u8" ? this._asU8(buffers[sample.color.buf]) : this._asF32(buffers[sample.color.buf]); + if (s.colorMode === 3) s._cpu.rgba = colorValues; + else s._cpu.color = colorValues; const colorBufferName = s.colorMode === 3 ? "rgbaBuf" : "cBuf"; s[colorBufferName] = gl.createBuffer(); this._tagChannelBuf(s[colorBufferName], colorValues, s.colorMode === 1); @@ -3103,6 +3113,7 @@ export class ChartView { const sizeValues = sample.size.dtype === "u8" ? this._asU8(buffers[sample.size.buf]) : this._asF32(buffers[sample.size.buf]); + s._cpu.size = sizeValues; s.sBuf = gl.createBuffer(); this._tagChannelBuf(s.sBuf, sizeValues, true); gl.bindBuffer(gl.ARRAY_BUFFER, s.sBuf); @@ -3133,10 +3144,12 @@ export class ChartView { copy("artist_alpha", 1); copy("stroke_width", 2, this.dpr); copy("symbol", 3); + s._cpuStyle = values; s.styleBuf = this._upload(values); } if (sample.stroke && sample.stroke.mode === "direct_rgba") { - s.strokeBuf = this._upload(this._asU8(buffers[sample.stroke.buf])); + s._cpuStroke = this._asU8(buffers[sample.stroke.buf]); + s.strokeBuf = this._upload(s._cpuStroke); } this._pointMarkStyle(s, trace); if (g.density) { @@ -3820,6 +3833,11 @@ export class ChartView { _drawNow() { if (this._destroyed || !this.gl || this._glLost) return; this._healStaleTheme(); + // `_drawPoints` records authored-marker draws here so the Canvas overlay + // paints the exact direct/sample/drill entries and LOD alpha chosen by + // this frame. Reconstructing them from gpuTraces would lose density + // window selection and transition fades. + this._authoredScatterDraws = []; const gl = this.gl; const { x0, x1, y0, y1 } = this.view; gl.bindFramebuffer(gl.FRAMEBUFFER, null); @@ -3919,8 +3937,13 @@ export class ChartView { _drawPoints(g, xm, ym, opacityScale = 1) { opacityScale *= (g._transitionOpacity ?? 1) * (g._legendDim ?? 1); // Pyplot-authored contours and glyphs keep these resident point buffers - // for picking/transitions but paint on the Canvas2D overlay below. - if (g.authoredMarker) return; + // for picking/transitions but paint on the Canvas2D overlay below. Queue + // the actual draw invocation (including density-sample/drill fades) + // instead of rediscovering only top-level direct traces in `_drawChrome`. + if (g.authoredMarker) { + (this._authoredScatterDraws ||= []).push({ g, opacityScale }); + return; + } const animationScale = g._transitionScale ?? 1; if (this._canDrawSimplePoints(g)) { this._drawSimplePoints(g, xm, ym, opacityScale); diff --git a/js/src/51_annotations.ts b/js/src/51_annotations.ts index dc320b29..664cfde8 100644 --- a/js/src/51_annotations.ts +++ b/js/src/51_annotations.ts @@ -145,6 +145,116 @@ function xyTrimPolylineEnd(points, trim) { return out; } +function xyCanvasRegularPolygon(ctx, cx, cy, radius, points, start = -Math.PI / 2) { + for (let index = 0; index < points; index++) { + const angle = start + index * 2 * Math.PI / points; + const x = cx + radius * Math.cos(angle); + const y = cy + radius * Math.sin(angle); + if (index === 0) ctx.moveTo(x, y); + else ctx.lineTo(x, y); + } + ctx.closePath(); +} + +// Canvas counterpart of POINT_FS/_SYMBOL_BUILDERS. Returns true for the two +// line-only symbols, whose authored paint is a stroke rather than a fill. +function xyCanvasScatterSymbol(ctx, symbol, cx, cy, diameter) { + const radius = diameter / 2; + ctx.beginPath(); + if (symbol === 0 || symbol === 12) { + ctx.arc(cx, cy, radius, 0, 2 * Math.PI); + } else if (symbol === 1 || symbol === 13) { + ctx.rect(cx - radius, cy - radius, diameter, diameter); + } else if (symbol === 2 || symbol === 14) { + const yr = Math.SQRT2 * radius; + const xr = symbol === 14 ? 0.6 * yr : yr; + ctx.moveTo(cx, cy - yr); + ctx.lineTo(cx + xr, cy); + ctx.lineTo(cx, cy + yr); + ctx.lineTo(cx - xr, cy); + ctx.closePath(); + } else if (symbol === 3) { + ctx.moveTo(cx, cy - radius); + ctx.lineTo(cx + radius, cy + radius); + ctx.lineTo(cx - radius, cy + radius); + ctx.closePath(); + } else if (symbol === 8) { + ctx.moveTo(cx, cy + radius); + ctx.lineTo(cx + radius, cy - radius); + ctx.lineTo(cx - radius, cy - radius); + ctx.closePath(); + } else if (symbol === 9) { + ctx.moveTo(cx - radius, cy); + ctx.lineTo(cx + radius, cy - radius); + ctx.lineTo(cx + radius, cy + radius); + ctx.closePath(); + } else if (symbol === 10) { + ctx.moveTo(cx + radius, cy); + ctx.lineTo(cx - radius, cy - radius); + ctx.lineTo(cx - radius, cy + radius); + ctx.closePath(); + } else if (symbol === 4) { + const inner = 0.34 * radius; + ctx.moveTo(cx - inner, cy - radius); + ctx.lineTo(cx + inner, cy - radius); + ctx.lineTo(cx + inner, cy - inner); + ctx.lineTo(cx + radius, cy - inner); + ctx.lineTo(cx + radius, cy + inner); + ctx.lineTo(cx + inner, cy + inner); + ctx.lineTo(cx + inner, cy + radius); + ctx.lineTo(cx - inner, cy + radius); + ctx.lineTo(cx - inner, cy + inner); + ctx.lineTo(cx - radius, cy + inner); + ctx.lineTo(cx - radius, cy - inner); + ctx.lineTo(cx - inner, cy - inner); + ctx.closePath(); + } else if (symbol === 11) { + const wide = 0.72 * radius; + const narrow = 0.28 * radius; + ctx.moveTo(cx - wide, cy - radius); + ctx.lineTo(cx, cy - narrow); + ctx.lineTo(cx + wide, cy - radius); + ctx.lineTo(cx + radius, cy - wide); + ctx.lineTo(cx + narrow, cy); + ctx.lineTo(cx + radius, cy + wide); + ctx.lineTo(cx + wide, cy + radius); + ctx.lineTo(cx, cy + narrow); + ctx.lineTo(cx - wide, cy + radius); + ctx.lineTo(cx - radius, cy + wide); + ctx.lineTo(cx - narrow, cy); + ctx.lineTo(cx - radius, cy - wide); + ctx.closePath(); + } else if (symbol === 15) { + ctx.moveTo(cx - radius, cy); + ctx.lineTo(cx + radius, cy); + ctx.moveTo(cx, cy - radius); + ctx.lineTo(cx, cy + radius); + return true; + } else if (symbol === 16) { + const edge = Math.SQRT1_2 * radius; + ctx.moveTo(cx - edge, cy - edge); + ctx.lineTo(cx + edge, cy + edge); + ctx.moveTo(cx + edge, cy - edge); + ctx.lineTo(cx - edge, cy + edge); + return true; + } else if (symbol === 5 || symbol === 6) { + xyCanvasRegularPolygon(ctx, cx, cy, radius, symbol === 5 ? 6 : 5); + } else if (symbol === 7) { + for (let index = 0; index < 10; index++) { + const r = index % 2 === 0 ? radius : radius * 0.45; + const angle = -Math.PI / 2 + index * Math.PI / 5; + const x = cx + r * Math.cos(angle); + const y = cy + r * Math.sin(angle); + if (index === 0) ctx.moveTo(x, y); + else ctx.lineTo(x, y); + } + ctx.closePath(); + } else { + ctx.arc(cx, cy, radius, 0, 2 * Math.PI); + } + return false; +} + // The shaft as a filled polygon whose width interpolates from w0 to w1 // (matplotlib's fancy/simple/wedge arrowstyles are filled tapered shafts). function xyTaperPolygon(points, w0, w1) { @@ -166,7 +276,7 @@ function xyTaperPolygon(points, w0, w1) { } Object.assign(ChartView.prototype, { - _authoredScatterRgba(g, index) { + _authoredScatterRgba(g, index, continuousLut = null) { if (g.colorMode === 3 && g._cpu.rgba) { const offset = index * 4; return Array.from(g._cpu.rgba.slice(offset, offset + 4), (value: number) => value / 255); @@ -182,65 +292,122 @@ Object.assign(ChartView.prototype, { } } if (g.colorMode === 1 && g._cpu.color) { - const lut = buildLutData(g.trace.color?.colormap || "viridis"); - const slot = Math.max(0, Math.min(255, Math.round(g._cpu.color[index] * 255))) * 4; + // The caller prepares this once per trace/redraw. Falling back to a + // default color is preferable to rebuilding 256 stops for every point. + if (!continuousLut) return g.color || [0.3, 0.47, 0.66, 1]; + const lut = continuousLut; + const value = g._cpu.color[index]; + const unit = g._cpu.color instanceof Uint8Array ? value / 255 : value; + const slot = Math.max(0, Math.min(255, Math.round(unit * 255))) * 4; return [lut[slot] / 255, lut[slot + 1] / 255, lut[slot + 2] / 255, 1]; } return g.color || [0.3, 0.47, 0.66, 1]; }, _drawAuthoredScatterMarkers(ctx) { - const traces = (this.gpuTraces || []).filter( - (g) => g && g.trace?.kind === "scatter" && g.authoredMarker && - g.tier !== "density" && !g._legendHidden + const draws = (this._authoredScatterDraws || []).filter( + ({ g }) => g && g.trace?.kind === "scatter" && g.authoredMarker ); - if (!traces.length) return; + if (!draws.length) return; const p = this.plot; ctx.save(); ctx.beginPath(); ctx.rect(p.x, p.y, p.w, p.h); ctx.clip(); - for (const g of traces) { + for (const { g, opacityScale } of draws) { + if (!g._cpu) continue; const style = g.trace.style || {}; const markerPath = style.marker_path; const markerGlyph = style.marker_glyph; const zoomStyle = this._pointZoomStyle(g); - const traceOpacity = Number(style.opacity ?? 0.8) * - Number(style.artist_alpha ?? 1) * zoomStyle.opacity * - Number(g._transitionOpacity ?? 1) * Number(g._legendDim ?? 1); + const colormap = g.trace.color?.colormap || "viridis"; + if (g.colorMode === 1 && g._authoredLutName !== colormap) { + g._authoredLutName = colormap; + g._authoredLut = buildLutData(colormap); + } + const continuousLut = g.colorMode === 1 ? g._authoredLut : null; for (let index = 0; index < g.n; index++) { - const x = this._decodeValue(g._cpu.x, g.xMeta, index); - const y = this._decodeValue(g._cpu.y, g.yMeta, index); + const sourceIndex = g._visMap ? g._visMap[index] : index; + const x = this._decodeValue(g._cpu.x, g.xMeta, sourceIndex); + const y = this._decodeValue(g._cpu.y, g.yMeta, sourceIndex); const px = this._dataPx(g.xAxis, x); const py = this._dataPx(g.yAxis, y); if (!Number.isFinite(px) || !Number.isFinite(py)) continue; const sizeValue = g.sizeMode === 1 && g._cpu.size - ? g.sizeRange[0] + (g.sizeRange[1] - g.sizeRange[0]) * g._cpu.size[index] + ? g.sizeRange[0] + (g.sizeRange[1] - g.sizeRange[0]) * + (g._cpu.size instanceof Uint8Array + ? g._cpu.size[sourceIndex] / 255 + : g._cpu.size[sourceIndex]) : g.size; const size = Math.max(0, Number(sizeValue) * zoomStyle.sizeFactor); - const rgba = this._authoredScatterRgba(g, index); - const alpha = Math.max(0, Math.min(1, rgba[3] * traceOpacity)); + const rgba = this._authoredScatterRgba(g, sourceIndex, continuousLut); + const styleOffset = sourceIndex * 4; + const itemStyle = g._cpuStyle && g._cpuStyle.length >= styleOffset + 4 + ? g._cpuStyle.subarray(styleOffset, styleOffset + 4) + : null; + const itemOpacity = itemStyle ? itemStyle[0] : 1; + const scalarArtist = Number(style.artist_alpha); + const artistAlpha = itemStyle && itemStyle[1] >= 0 + ? itemStyle[1] + : Number.isFinite(scalarArtist) ? scalarArtist : -1; + const intrinsicAlpha = artistAlpha >= 0 ? artistAlpha : rgba[3]; + const alpha = Math.max( + 0, + Math.min(1, intrinsicAlpha * itemOpacity * zoomStyle.opacity * opacityScale), + ); const paint = `rgba(${Math.round(rgba[0] * 255)},${Math.round(rgba[1] * 255)},${Math.round(rgba[2] * 255)},${alpha})`; - const strokeWidth = Math.max(0, Number(style.stroke_width) || 0); - const stroke = style.stroke - ? safeCssPaint(this.root, style.stroke, rgba) - : paint; + const strokeWidth = Math.max( + 0, + itemStyle && itemStyle[2] >= 0 + ? itemStyle[2] / this.dpr + : Number(style.stroke_width) || 0, + ); + let strokeRgba = g.pointStroke || rgba; + if (g._cpuStroke && g._cpuStroke.length >= (sourceIndex + 1) * 4) { + const offset = sourceIndex * 4; + strokeRgba = Array.from( + g._cpuStroke.slice(offset, offset + 4), + (value: number) => value / 255, + ); + } + const strokeIntrinsic = artistAlpha >= 0 ? artistAlpha : strokeRgba[3]; + const strokeAlpha = Math.max( + 0, + Math.min(1, strokeIntrinsic * itemOpacity * zoomStyle.strokeOpacity * opacityScale), + ); + const strokePaint = g.pointStrokeFace + ? paint + : `rgba(${Math.round(strokeRgba[0] * 255)},${Math.round(strokeRgba[1] * 255)},${Math.round(strokeRgba[2] * 255)},${strokeAlpha})`; + const symbol = itemStyle && itemStyle[3] >= 0 ? Math.round(itemStyle[3]) : null; + const diameter = Math.max(0, size - strokeWidth); ctx.save(); ctx.fillStyle = paint; - ctx.strokeStyle = stroke; + ctx.strokeStyle = strokePaint; ctx.lineWidth = strokeWidth; - if (markerGlyph) { - ctx.font = `${size}px "DejaVu Sans", sans-serif`; + if (symbol !== null) { + const lineSymbol = xyCanvasScatterSymbol(ctx, symbol, px, py, diameter); + if (lineSymbol) { + ctx.strokeStyle = paint; + ctx.lineWidth = Math.max(1, strokeWidth); + ctx.stroke(); + } else { + ctx.fill("evenodd"); + if (strokeWidth > 0) ctx.stroke(); + } + } else if (markerGlyph) { + ctx.font = `${diameter}px "DejaVu Sans", sans-serif`; ctx.textAlign = "center"; ctx.textBaseline = "middle"; ctx.fillText(String(markerGlyph), px, py); - if (strokeWidth > 0 && style.stroke) ctx.strokeText(String(markerGlyph), px, py); + if (strokeWidth > 0) { + ctx.strokeText(String(markerGlyph), px, py); + } } else if (markerPath) { ctx.beginPath(); for (const contour of markerPath.contours || []) { for (let offset = 0; offset + 1 < contour.length; offset += 2) { - const vx = px + size * Number(contour[offset]); - const vy = py - size * Number(contour[offset + 1]); + const vx = px + diameter * Number(contour[offset]); + const vy = py - diameter * Number(contour[offset + 1]); if (offset === 0) ctx.moveTo(vx, vy); else ctx.lineTo(vx, vy); } @@ -250,6 +417,7 @@ Object.assign(ChartView.prototype, { ctx.fill("evenodd"); if (strokeWidth > 0) ctx.stroke(); } else { + ctx.strokeStyle = paint; ctx.lineWidth = Math.max(1, strokeWidth); ctx.stroke(); } diff --git a/python/xy/_raster.py b/python/xy/_raster.py index 6023c17b..8647fd8d 100644 --- a/python/xy/_raster.py +++ b/python/xy/_raster.py @@ -1575,6 +1575,31 @@ def read(index: int) -> np.ndarray: fills = np.rint( _paint.effective_rgba(face, t, read, component="fill", default_opacity=0.8) * 255.0 ).astype(np.uint8) + if (t.get("stroke") or {}).get("mode") == "match_fill": + stroke_intrinsic = face + elif t.get("stroke") is not None: + stroke_intrinsic = _trace_paint_rgba(t, "stroke", n, color, read) + elif style.get("stroke") is not None: + stroke_intrinsic = np.tile( + np.asarray( + _parse_color(_css(style.get("stroke"), color)), + dtype=np.float64, + ) + / 255.0, + (n, 1), + ) + else: + stroke_intrinsic = face + strokes = np.rint( + _paint.effective_rgba( + stroke_intrinsic, + t, + read, + component="stroke", + default_opacity=0.8, + ) + * 255.0 + ).astype(np.uint8) size_ch = t.get("size") or {} if size_ch.get("mode") == "continuous": values = _column(blob, cols[size_ch["buf"]]) @@ -1589,6 +1614,7 @@ def read(index: int) -> np.ndarray: for index in range(n): fill = tuple(int(value) for value in fills[index]) + stroke = tuple(int(value) for value in strokes[index]) diameter = max(0.0, 2 * (float(radii[index]) - float(widths[index]) / 2)) if marker_glyph: cmd.text( @@ -1619,7 +1645,7 @@ def read(index: int) -> np.ndarray: cmd.fill(points, fill) if float(widths[index]) > 0: for points in contours: - cmd.stroke(points, float(widths[index]), fill, closed=True) + cmd.stroke(points, float(widths[index]), stroke, closed=True) else: width = max(1.0, float(widths[index])) for points in contours: diff --git a/python/xy/pyplot/_artists.py b/python/xy/pyplot/_artists.py index 8c3e9553..0fec4e02 100644 --- a/python/xy/pyplot/_artists.py +++ b/python/xy/pyplot/_artists.py @@ -624,6 +624,12 @@ def set_data(self, *args: Any) -> None: self._axes._set_axes_image_data(self, z) self._entry["kwargs"]["x"] = np.asarray(x).copy() self._entry["kwargs"]["y"] = np.asarray(y).copy() + # `_set_axes_image_data` copied the replacement artist's extent, + # which was prepared from the old imshow state. The 3-argument + # form supplies new coordinate centers, so invalidate that cached + # box and materialize the bounds derived from the new x/y arrays. + self._entry.pop("extent", None) + self._entry["extent"] = self.get_extent() else: raise TypeError("set_data expects image data or x, y, image data") self._touch() diff --git a/python/xy/pyplot/_axes.py b/python/xy/pyplot/_axes.py index 35165a6d..d41d16c7 100644 --- a/python/xy/pyplot/_axes.py +++ b/python/xy/pyplot/_axes.py @@ -5706,7 +5706,11 @@ def _axline_data(self, entry: dict[str, Any]) -> tuple[np.ndarray, np.ndarray]: direction = (0.0, 1.0) if np.isinf(slope) else (1.0, slope) return _clip_infinite_line(xy1, direction, xlim, ylim) - def _chart_children(self) -> list[Any]: + def _chart_children( + self, + *, + resolved_domains: Optional[Mapping[str, tuple[float, float]]] = None, + ) -> list[Any]: children: list[Any] = [] for e in self._entries: kind = e["kind"] @@ -5834,7 +5838,11 @@ def _chart_children(self) -> list[Any]: elif kind == "@hline": children.append(xy.hline(*e["args"], **kw)) if e.get("endpoint_marker"): - x_domain = self._axis_props("x").get("domain") or self._auto_domain("x") + x_domain = ( + (resolved_domains or {}).get("x") + or self._axis_props("x").get("domain") + or self._auto_domain("x") + ) span = kw.get("style") or {} start = float(span.get("span_start", 0.0)) end = float(span.get("span_end", 1.0)) @@ -5851,7 +5859,11 @@ def _chart_children(self) -> list[Any]: elif kind == "@vline": children.append(xy.vline(*e["args"], **kw)) if e.get("endpoint_marker"): - y_domain = self._axis_props("y").get("domain") or self._auto_domain("y") + y_domain = ( + (resolved_domains or {}).get("y") + or self._axis_props("y").get("domain") + or self._auto_domain("y") + ) span = kw.get("style") or {} start = float(span.get("span_start", 0.0)) end = float(span.get("span_end", 1.0)) @@ -6464,9 +6476,6 @@ def _build_chart(self, width: int, height: int) -> Any: if self._chart is not None: return self._chart self._materialize_insets() - children = self._chart_children() - if self._twin is not None: - children.extend(self._twin._chart_children()) chart_padding = ( self._frame_padding(width, height) if self._padding is None else list(self._padding) ) @@ -6639,6 +6648,18 @@ def _build_chart(self, width: int, height: int) -> Any: self._apply_tickers("x", x_props, auto_tick_counts["x"]) self._apply_tickers("y", y_props, auto_tick_counts["y"]) self._apply_auto_tick_density(x_props, y_props, auto_tick_counts) + resolved_domains: dict[str, tuple[float, float]] = {} + if any( + entry.get("kind") == "@hline" and entry.get("endpoint_marker") + for entry in self._entries + ): + resolved_domains["x"] = tuple(x_props.get("domain") or self._auto_domain("x")) + if any( + entry.get("kind") == "@vline" and entry.get("endpoint_marker") + for entry in self._entries + ): + resolved_domains["y"] = tuple(y_props.get("domain") or self._auto_domain("y")) + children = self._chart_children(resolved_domains=resolved_domains) # The left gutter is no longer reserved here. `_svg.layout()` measures # it from the axis's own tick/title extents once the range is resolved, # which covers numeric ticks (this shim's 13.89 px rcParam fonts overrun @@ -6660,6 +6681,18 @@ def _build_chart(self, width: int, height: int) -> Any: else: y2_props["margin"] = margin self._apply_tickers("y2", y2_props, auto_tick_counts["y"]) + twin_domains: dict[str, tuple[float, float]] = {} + if any( + entry.get("kind") == "@hline" and entry.get("endpoint_marker") + for entry in self._twin._entries + ): + twin_domains["x"] = tuple(x_props.get("domain") or self._auto_domain("x")) + if any( + entry.get("kind") == "@vline" and entry.get("endpoint_marker") + for entry in self._twin._entries + ): + twin_domains["y"] = tuple(y2_props.get("domain") or self._twin._auto_domain("y")) + children.extend(self._twin._chart_children(resolved_domains=twin_domains)) children.append(xy.y_axis(id="y2", side="right", **y2_props)) legend_needs_best = False if self._legend and self._legend_artist is not None: diff --git a/tests/pyplot/test_artist_mutations.py b/tests/pyplot/test_artist_mutations.py index 41dba930..590d903d 100644 --- a/tests/pyplot/test_artist_mutations.py +++ b/tests/pyplot/test_artist_mutations.py @@ -126,3 +126,20 @@ def test_imshow_owns_source_and_render_arrays_and_set_data_reprepares_both() -> np.testing.assert_array_equal(image.get_array(), expected_source) np.testing.assert_array_equal(image._entry["z"], expected_render) assert ax.images == [image] + + +def test_axes_image_set_data_xyz_recomputes_cached_extent() -> None: + _fig, ax = plt.subplots() + image = ax.imshow(np.arange(6.0).reshape(2, 3)) + x = np.asarray([10.0, 20.0, 40.0]) + y = np.asarray([-2.0, 2.0]) + + image.set_data(x, y, np.arange(6.0).reshape(2, 3)) + + expected = (2.5, 47.5, -4.0, 4.0) + assert image.get_extent() == pytest.approx(expected) + assert image._entry["extent"] == pytest.approx(expected) + x[:] = -99 + y[:] = -99 + np.testing.assert_array_equal(image._entry["kwargs"]["x"], [10.0, 20.0, 40.0]) + np.testing.assert_array_equal(image._entry["kwargs"]["y"], [-2.0, 2.0]) diff --git a/tests/pyplot/test_marker_fidelity.py b/tests/pyplot/test_marker_fidelity.py index f6be8503..fd131846 100644 --- a/tests/pyplot/test_marker_fidelity.py +++ b/tests/pyplot/test_marker_fidelity.py @@ -99,6 +99,79 @@ def test_scatter_authored_markers_keep_distinct_renderer_specs_and_exports(): assert png.startswith(b"\x89PNG\r\n\x1a\n") +def test_raster_authored_marker_uses_explicit_edgecolor(monkeypatch): + fig, ax = plt.subplots() + ax.scatter( + [0], + [0], + marker=(5, 0), + s=200, + c="#ff0000", + edgecolors="#00ff00", + linewidths=4, + ) + + core = ax._build_chart(320, 240).figure() + spec, blob = core.build_payload() + strokes = [] + original_stroke = _raster._Cmd.stroke + + def record_stroke(self, points, width, color, closed=False, dash=None, cap="round"): + strokes.append((width, color, closed)) + return original_stroke( + self, + points, + width, + color, + closed=closed, + dash=dash, + cap=cap, + ) + + monkeypatch.setattr(_raster._Cmd, "stroke", record_stroke) + _raster.render_raster(spec, blob, scale=1) + + assert any(color == (0, 255, 0, 255) and closed for _width, color, closed in strokes) + svg = core.to_svg() + assert 'stroke="#00ff00"' in svg + + +def test_raster_authored_marker_match_fill_keeps_per_point_colors(monkeypatch): + _, ax = plt.subplots() + ax.scatter( + [0, 1], + [0, 1], + marker=(5, 0), + s=200, + c=["#ff0000", "#0000ff"], + edgecolors="face", + linewidths=4, + ) + + spec, blob = ax._build_chart(320, 240).figure().build_payload() + strokes = [] + original_stroke = _raster._Cmd.stroke + + def record_stroke(self, points, width, color, closed=False, dash=None, cap="round"): + if closed: + strokes.append(color) + return original_stroke( + self, + points, + width, + color, + closed=closed, + dash=dash, + cap=cap, + ) + + monkeypatch.setattr(_raster._Cmd, "stroke", record_stroke) + _raster.render_raster(spec, blob, scale=1) + + assert (255, 0, 0, 255) in strokes + assert (0, 0, 255, 255) in strokes + + def test_constant_scatter_sizes_survive_automatic_legend_derivation(monkeypatch): fig, ax = plt.subplots() areas = np.asarray([100.0, 300.0, 500.0]) @@ -182,3 +255,29 @@ def test_axis_lines_render_direct_endpoint_markers(method: str): assert scatter[0]["color"]["color"] == "red" assert scatter[0]["style"]["stroke"] == "black" assert scatter[0]["n_marks"] == 2 + + +@pytest.mark.parametrize( + ("method", "coordinate"), + (("axhline", "x"), ("axvline", "y")), +) +def test_axis_line_endpoint_markers_use_final_aspect_domain( + method: str, + coordinate: str, +): + _, ax = plt.subplots(figsize=(8, 3)) + ax.plot([0, 1], [0, 4]) + ax.axis("equal") + if method == "axhline": + ax.axhline(2, xmin=0.25, xmax=0.75, marker=".") + else: + ax.axvline(0.5, ymin=0.25, ymax=0.75, marker=".") + + figure = ax._build_chart(800, 300).figure() + payload, _blob = figure.build_payload() + domain = np.asarray(payload[f"{coordinate}_axis"]["domain"], dtype=float) + expected = domain[0] + np.asarray([0.25, 0.75]) * np.diff(domain)[0] + [marker_trace] = [trace for trace in figure.traces if trace.kind == "scatter"] + actual = np.asarray(getattr(marker_trace, coordinate).values, dtype=float) + + np.testing.assert_allclose(actual, expected) diff --git a/tests/test_static_client_security.py b/tests/test_static_client_security.py index abaa91e1..71fb14a0 100644 --- a/tests/test_static_client_security.py +++ b/tests/test_static_client_security.py @@ -577,6 +577,45 @@ def test_client_refreshes_and_destroys_density_sample_overlays() -> None: assert "view._applyDensitySample(g, d.sample, buffers);" in lod +def test_authored_markers_keep_lod_and_style_channels_cpu_readable() -> None: + chartview = _read(ROOT / "js/src/50_chartview.ts") + lod = _read(ROOT / "js/src/45_lod.ts") + annotations = _read(ROOT / "js/src/51_annotations.ts") + + # The draw queue records the exact direct/sample/drill object selected by + # LOD, including its transition alpha, rather than rescanning top-level + # traces and silently omitting density samples. + assert "this._authoredScatterDraws = [];" in chartview + assert "(this._authoredScatterDraws ||= []).push({ g, opacityScale });" in chartview + assert "const draws = (this._authoredScatterDraws || []).filter(" in annotations + + # Direct, density-sample, and density-drill rows all retain the canonical + # style and edge-paint channels needed by the Canvas overlay. + assert "g._cpuStyle = values;" in chartview + assert "s._cpuStyle = values;" in chartview + assert "d._cpuStyle = values;" in lod + assert "g._cpuStroke = this._columnView(" in chartview + assert "s._cpuStroke = this._asU8(" in chartview + assert "d._cpuStroke = values;" in lod + + draw_start = annotations.index("_drawAuthoredScatterMarkers(ctx) {") + draw_body = annotations[ + draw_start : annotations.index("\n _annotationPaint(style, fallback)", draw_start) + ] + loop_start = draw_body.index("for (let index = 0; index < g.n; index++)") + assert "buildLutData(" in draw_body[:loop_start] + assert "buildLutData(" not in draw_body[loop_start:] + for marker in ( + "g._cpuStyle.subarray(", + "itemStyle[0]", + "itemStyle[1]", + "itemStyle[2]", + "itemStyle[3]", + "g._cpuStroke.slice(", + ): + assert marker in draw_body + + def test_client_refreshes_theme_when_framework_theme_classes_change() -> None: """Keep canvas paint synchronized with class- and attribute-driven themes.""" required = ( From adc048e661bfc7fc5230e6dc89516ce72ec2495c Mon Sep 17 00:00:00 2001 From: Alek Petuskey Date: Mon, 27 Jul 2026 06:51:22 -0700 Subject: [PATCH 08/17] Fix reused subplot state handling --- python/xy/pyplot/_mplfig.py | 21 +++++++++++++---- spec/matplotlib/compat-changelog.md | 5 +++- spec/matplotlib/compat.md | 4 ++-- tests/pyplot/test_pyplot_state_management.py | 24 ++++++++++++++++++++ 4 files changed, 47 insertions(+), 7 deletions(-) diff --git a/python/xy/pyplot/_mplfig.py b/python/xy/pyplot/_mplfig.py index dc1f2d9e..0d64387e 100644 --- a/python/xy/pyplot/_mplfig.py +++ b/python/xy/pyplot/_mplfig.py @@ -191,13 +191,20 @@ def add_subplot(self, *args: Any, **kwargs: Any) -> Axes: self._current_ax = ax # matplotlib: add_subplot activates the axes sharex = kwargs.pop("sharex", None) sharey = kwargs.pop("sharey", None) + self._share_subplot_axes(ax, sharex=sharex, sharey=sharey) + if kwargs: + ax.set(**kwargs) + return ax + + @staticmethod + def _share_subplot_axes(ax: Axes, *, sharex: Any = None, sharey: Any = None) -> None: + """Wire construction-only subplot sharing without routing it through ``Axes.set``.""" if sharex is not None: ax._axis["x"] = sharex._axis_props("x") # static share, as in twiny() if sharey is not None: ax._axis["y"] = sharey._axis_props("y") - if kwargs: - ax.set(**kwargs) - return ax + if sharex is not None or sharey is not None: + ax._invalidate() def _claim_or_create_subplot(self, key: tuple[Any, ...], index: int) -> Axes: """Claim a grid placeholder or append a same-spec overlay axes.""" @@ -232,6 +239,9 @@ def activate_subplot(self, *args: Any, **kwargs: Any) -> Axes: if existing is None: return self.add_subplot(*args, **kwargs) self._current_ax = existing + sharex = kwargs.pop("sharex", None) + sharey = kwargs.pop("sharey", None) + self._share_subplot_axes(existing, sharex=sharex, sharey=sharey) if kwargs: existing.set(**kwargs) return existing @@ -850,7 +860,10 @@ def subplot_mosaic(self, mosaic: Any, **kwargs: Any) -> dict[Any, Axes]: if label != "." and label not in labels: labels.append(label) self._ensure_grid(max(1, len(rows)), max(1, max(map(len, rows)))) - return {label: self._axes_at(index) for index, label in enumerate(labels)} + result = {label: self._axes_at(index) for index, label in enumerate(labels)} + for ax in result.values(): + ax._subplot_claimed = True + return result # -- panel sizing ----------------------------------------------------------- diff --git a/spec/matplotlib/compat-changelog.md b/spec/matplotlib/compat-changelog.md index 0aac17c3..7a8dd04f 100644 --- a/spec/matplotlib/compat-changelog.md +++ b/spec/matplotlib/compat-changelog.md @@ -9,7 +9,10 @@ which covers user-visible releases across the whole package. - Split subplot creation from activation: repeated same-spec `Figure.add_subplot()` calls now create overlay axes, while `plt.subplot()` reuses the first matching axes and no-argument `plt.axes()` creates a fresh - axes. This restores the state boundaries used by PDSH 04.01 and 04.10. + axes. Reused subplots process `sharex=`/`sharey=` through the same + axis-property sharing path as newly created subplots, and mosaic-returned + axes are claimed before later `Figure.add_subplot()` calls. This restores + the state boundaries used by PDSH 04.01 and 04.10. - Static PNG/SVG composition rebuilds cached panels when a fresh axes changes the figure to or from overlapping absolute placement. Same-position axes therefore share one frame: the later opaque axes patch covers the older diff --git a/spec/matplotlib/compat.md b/spec/matplotlib/compat.md index 1fa27970..ff474b40 100644 --- a/spec/matplotlib/compat.md +++ b/spec/matplotlib/compat.md @@ -78,7 +78,7 @@ dependency-free `triangles=` shorthand into Matplotlib's equivalent | `fig, ax = plt.subplots()`; `plt.subplots(n, m, figsize=, dpi=, squeeze=, sharex=, sharey=)` | Grid renders as CSS-grid HTML and stitched PNG/SVG; shared axes use common domains and live linked pan/zoom. `Figure.subplots_adjust(left=, right=, top=, bottom=, wspace=, hspace=)` moves the SubplotParams frame: the grid resolves to explicit figure rectangles and every exporter (HTML, PNG, SVG) positions panels at those rectangles | | `Axes.get_position(original=False)` and the rendered axes frame | Supported subplot and free-form axes report their live figure rectangle and render on it. `original=True` returns the allocated rectangle before an adjustable-box aspect correction; the default applies the correction and its anchor, matching Matplotlib. Grid cells resolve under the live SubplotParams (`wspace`/`hspace`, width/height ratios), while explicit `add_axes`/`set_position` rectangles take precedence until a later layout adjustment. Titles, top-side x axes (`matshow`), and secondary-y gutters grow the surrounding allocation instead of moving the frame. **Known exception:** an axes carrying a colorbar keeps label-aware margins because xy and Matplotlib currently reserve the colorbar strip through different layout paths | | `fig.add_subplot(2, 2, 1)` / `add_subplot(221)` | `Figure.add_subplot` creates a new axes even when the figure already contains the same spec; stateful `plt.subplot` instead activates the first matching axes in figure order. A no-argument `plt.axes()` creates a fresh default-position axes. Same-position axes share one static-export frame and stack in figure order, so the later opaque axes patch covers the older plot without offsetting duplicate tick/label chrome | -| `plt.subplot_mosaic([['A','B'],['C','C']])` / `Figure.subplot_mosaic` | Row sequences (a list of equal-length label strings, or nested label lists) resolve to a uniform grid; each distinct label, in first-appearance order, binds to the next cell, returning `(fig, {label: Axes})` with `figsize=`/`dpi=` sizing the figure. Repeated labels do not span and `'.'` does not blank a cell — the grid keeps one axes per cell — and Matplotlib's single-string forms (`'AB;CC'`, newline-separated blocks) are not parsed into rows | +| `plt.subplot_mosaic([['A','B'],['C','C']])` / `Figure.subplot_mosaic` | Row sequences (a list of equal-length label strings, or nested label lists) resolve to a uniform grid; each distinct label, in first-appearance order, binds to the next cell, returning claimed `(fig, {label: Axes})` entries that a later `Figure.add_subplot` does not hijack, with `figsize=`/`dpi=` sizing the figure. Repeated labels do not span and `'.'` does not blank a cell — the grid keeps one axes per cell — and Matplotlib's single-string forms (`'AB;CC'`, newline-separated blocks) are not parsed into rows | | `gca` / `gcf` / `sca` / `figure(num)` / `close(...)` | matplotlib's implicit-state semantics | | `savefig('x.png' / '.svg' / '.html', dpi=)` | Browser-free PNG/SVG supports both single and multi-panel figures; file-like targets require an explicit `format=` and unsupported metadata/layout/export formats fail loudly | | `plt.show()` | notebooks: inline HTML display; scripts: opens the default browser | @@ -92,7 +92,7 @@ dependency-free `triangles=` shorthand into Matplotlib's equivalent | Text weight | Title, axis-label, tick-label, legend, legend-title, colorbar-title, and annotation text all default to normal (400) weight in every renderer, matching Matplotlib's `axes.titleweight`/`axes.labelweight`/`font.weight` defaults. Heavier text needs an explicit `fontweight=`, `label_font_weight`, `styles[slot]`, or rcParam. Native PNG approximates: the bounded font atlas holds one regular and one bold face, so weights `>= 600` render bold and everything lighter renders regular — intermediate weights are not distinguishable in native PNG, while browser and SVG output pass the requested weight through verbatim. See [styling § Chrome text weight](../api/styling.md#chrome-text-weight) | | `plt.style.use(...)` / `plt.style.context(...)` | `"default"`, `"xy"`, bounded rcParam dictionaries, ordered lists, and the stock sheets fivethirtyeight, ggplot, bmh, dark_background, grayscale, seaborn-v0_8-white(grid), seaborn-v0_8-darkgrid, and seaborn-v0_8-deep — reduced to the supported rcParams subset (colors, grid, cycle, line width, font size; per-sheet keys outside that subset are not carried). The darkgrid sheet mirrors seaborn's `axes_style` (including `patch.edgecolor: white` + `patch.force_edgecolor`, which give hist/bar patches their white separators); `-deep` installs seaborn's classic color cycle. `context()` snapshots and restores. Unknown sheet names fail precisely | | `plt.GridSpec(r, c, wspace=, hspace=, width_ratios=)` + slice specs | Spans (`grid[0, 1:]`, `grid[:-1, 0]`) and custom spacing resolve to explicit figure rectangles using Matplotlib's SubplotParams frame; default-geometry single cells keep the uniform grid. Spanning layouts position exactly in HTML, PNG, and SVG: free-form panels (including `add_axes` rects and insets) render absolutely at their figure rectangles in every exporter, with later axes stacked above earlier ones | -| `add_subplot(spec, sharex=, sharey=, xticklabels=[], ...)` | per-axes sharing aliases the axis-property store (static domains, as `twiny` does), not Matplotlib's live Grouper; `get_shared_x_axes()` reflects it | +| `add_subplot(spec, sharex=, sharey=, xticklabels=[], ...)` / reused `plt.subplot(..., sharex=, sharey=)` | per-axes sharing aliases the axis-property store (static domains, as `twiny` does), not Matplotlib's live Grouper; `get_shared_x_axes()` reflects it. Construction-only sharing keywords are handled before ordinary `Axes.set(...)` properties on both creation and activation paths | ## Outside 2-D chart-method compatibility diff --git a/tests/pyplot/test_pyplot_state_management.py b/tests/pyplot/test_pyplot_state_management.py index f319929e..a196488f 100644 --- a/tests/pyplot/test_pyplot_state_management.py +++ b/tests/pyplot/test_pyplot_state_management.py @@ -63,6 +63,30 @@ def test_subplot_reuses_match_but_no_arg_axes_is_fresh(): assert plt.gca() is subplot +def test_reused_subplot_handles_axis_sharing_before_normal_properties(): + fig = plt.figure() + subplot = fig.add_subplot(111) + shared = fig.add_axes([0.1, 0.1, 0.2, 0.2]) + + reused = plt.subplot(111, sharex=shared, sharey=shared, title="shared") + + assert reused is subplot + assert reused.get_shared_x_axes().joined(reused, shared) + assert reused.get_shared_y_axes().joined(reused, shared) + assert reused.get_title() == "shared" + + +def test_subplot_mosaic_claims_returned_axes_before_later_add_subplot(): + fig, axes = plt.subplot_mosaic([["left", "right"]]) + + assert all(ax._subplot_claimed for ax in axes.values()) + overlay = fig.add_subplot(1, 2, 1) + + assert overlay is not axes["left"] + assert axes["left"] in fig.axes + assert overlay in fig.axes + + def test_pyplot_twiny_creates_current_axes_on_same_figure(): fig, ax = plt.subplots() twin = plt.twiny() From 2a6b2cde2fe3ddf08bc49019d2c0147425829448 Mon Sep 17 00:00:00 2001 From: Alek Petuskey Date: Mon, 27 Jul 2026 07:33:55 -0700 Subject: [PATCH 09/17] Support prop cycle length in gallery styles --- python/xy/pyplot/_rc.py | 3 +++ spec/matplotlib/compat-changelog.md | 6 ++++++ spec/matplotlib/compat.md | 2 +- .../pyplot/test_rc_color_export_contracts.py | 20 +++++++++++++++++++ 4 files changed, 30 insertions(+), 1 deletion(-) diff --git a/python/xy/pyplot/_rc.py b/python/xy/pyplot/_rc.py index 7de5017e..6be8c8cc 100644 --- a/python/xy/pyplot/_rc.py +++ b/python/xy/pyplot/_rc.py @@ -16,6 +16,9 @@ class _PropCycle: def __init__(self, colors: Any = None) -> None: self._colors = None if colors is None else tuple(str(color) for color in colors) + def __len__(self) -> int: + return len(self.by_key()["color"]) + def by_key(self) -> dict[str, list[str]]: from ._colors import PROP_CYCLE diff --git a/spec/matplotlib/compat-changelog.md b/spec/matplotlib/compat-changelog.md index 7a8dd04f..0e16172b 100644 --- a/spec/matplotlib/compat-changelog.md +++ b/spec/matplotlib/compat-changelog.md @@ -4,6 +4,12 @@ This changelog records changes to the upstream compatibility target and to the meaning of xy's compatibility levels. It complements the project changelog, which covers user-visible releases across the whole package. +## Style-sheet gallery source compatibility — 2026-07-27 + +- The bounded `rcParams["axes.prop_cycle"]` proxy now reports the installed + color count through `len()`, allowing Matplotlib's exact `dark_background` + gallery source to derive its shifted-line count after applying the style. + ## PDSH state and image ownership — 2026-07-26 - Split subplot creation from activation: repeated same-spec diff --git a/spec/matplotlib/compat.md b/spec/matplotlib/compat.md index ff474b40..50498b61 100644 --- a/spec/matplotlib/compat.md +++ b/spec/matplotlib/compat.md @@ -88,7 +88,7 @@ dependency-free `triangles=` shorthand into Matplotlib's equivalent | `LinearSegmentedColormap.from_list` / `ListedColormap` | Python-side callables (`cmap(np.arange(cmap.N))` → RGBA) for scripts that colormap values themselves; they cannot be passed as `cmap=` to plotting calls (no engine table), which fails loudly | | `plt.colorbar()` / `fig.colorbar()` / `plt.clim()` / `plt.gci()` | Returns a live handle (`set_label`, `set_ticks`); with no mappable it uses the current image the way pyplot does. `ticks=`/`extend=` render in PNG and SVG (the HTML colorbar stays a minimal gradient without tick text); `clim` retargets the mappable's color window and any colorbar derived from it | | `Colorbar.set_label(...)` / `colorbar(label=...)` | Matplotlib's default label geometry in all three renderers: beside a vertical bar rotated 90° counter-clockwise and centered on it, or upright and centered below a horizontal bar. The vertical label is a quarter turn, which the native PNG rasterizer renders exactly (only arbitrary text angles fall back to upright glyphs there), and the reserved right-margin room contains its cross-axis glyph extent. `set_label` ignores Matplotlib's customization kwargs (`loc=`, `labelpad=`, `rotation=`, font properties) rather than failing — the default orientation is derived from the bar | -| `rcParams` | Figure size/DPI, line width/marker size, image cmap/origin, axes color cycle, and all four `axes.spines.*` switches affect every exporter. Pyplot axes default to Matplotlib's four-sided box and each spine can be hidden independently. The chrome keys (axes face/edge/label/title styles, font family/size, tick colors/sizes, legend defaults, figure facecolor) reach the HTML renderer and multi-panel PNG stitching; single-chart PNG and SVG export currently render their own fixed chrome and ignore most of them. `axes.titleweight` and `axes.labelweight` are supported and verified to reach all three renderers (browser, single-chart SVG, single-chart native PNG); both default to `normal`, matching Matplotlib. Unknown keys warn once | +| `rcParams` | Figure size/DPI, line width/marker size, image cmap/origin, axes color cycle, and all four `axes.spines.*` switches affect every exporter. The bounded `axes.prop_cycle` proxy supports `by_key()` and reports its color count through `len()`, including after named styles replace the cycle. Pyplot axes default to Matplotlib's four-sided box and each spine can be hidden independently. The chrome keys (axes face/edge/label/title styles, font family/size, tick colors/sizes, legend defaults, figure facecolor) reach the HTML renderer and multi-panel PNG stitching; single-chart PNG and SVG export currently render their own fixed chrome and ignore most of them. `axes.titleweight` and `axes.labelweight` are supported and verified to reach all three renderers (browser, single-chart SVG, single-chart native PNG); both default to `normal`, matching Matplotlib. Unknown keys warn once | | Text weight | Title, axis-label, tick-label, legend, legend-title, colorbar-title, and annotation text all default to normal (400) weight in every renderer, matching Matplotlib's `axes.titleweight`/`axes.labelweight`/`font.weight` defaults. Heavier text needs an explicit `fontweight=`, `label_font_weight`, `styles[slot]`, or rcParam. Native PNG approximates: the bounded font atlas holds one regular and one bold face, so weights `>= 600` render bold and everything lighter renders regular — intermediate weights are not distinguishable in native PNG, while browser and SVG output pass the requested weight through verbatim. See [styling § Chrome text weight](../api/styling.md#chrome-text-weight) | | `plt.style.use(...)` / `plt.style.context(...)` | `"default"`, `"xy"`, bounded rcParam dictionaries, ordered lists, and the stock sheets fivethirtyeight, ggplot, bmh, dark_background, grayscale, seaborn-v0_8-white(grid), seaborn-v0_8-darkgrid, and seaborn-v0_8-deep — reduced to the supported rcParams subset (colors, grid, cycle, line width, font size; per-sheet keys outside that subset are not carried). The darkgrid sheet mirrors seaborn's `axes_style` (including `patch.edgecolor: white` + `patch.force_edgecolor`, which give hist/bar patches their white separators); `-deep` installs seaborn's classic color cycle. `context()` snapshots and restores. Unknown sheet names fail precisely | | `plt.GridSpec(r, c, wspace=, hspace=, width_ratios=)` + slice specs | Spans (`grid[0, 1:]`, `grid[:-1, 0]`) and custom spacing resolve to explicit figure rectangles using Matplotlib's SubplotParams frame; default-geometry single cells keep the uniform grid. Spanning layouts position exactly in HTML, PNG, and SVG: free-form panels (including `add_axes` rects and insets) render absolutely at their figure rectangles in every exporter, with later axes stacked above earlier ones | diff --git a/tests/pyplot/test_rc_color_export_contracts.py b/tests/pyplot/test_rc_color_export_contracts.py index 7d743238..82a0f2c0 100644 --- a/tests/pyplot/test_rc_color_export_contracts.py +++ b/tests/pyplot/test_rc_color_export_contracts.py @@ -45,6 +45,26 @@ def test_style_use_supports_bounded_dicts_and_ordered_lists() -> None: plt.rcdefaults() +def test_dark_background_gallery_uses_prop_cycle_length() -> None: + # Exact source idiom from Matplotlib 3.11's + # galleries/examples/style_sheets/dark_background.py. + plt.style.use("dark_background") + length = 6 + x = np.linspace(0, length) + ncolors = len(plt.rcParams["axes.prop_cycle"]) + shift = np.linspace(0, length, ncolors, endpoint=False) + + _fig, ax = plt.subplots() + for offset in shift: + ax.plot(x, np.sin(x + offset), "o-") + + assert ncolors == 10 + assert ncolors == len(plt.rcParams["axes.prop_cycle"].by_key()["color"]) + assert len(ax.get_lines()) == ncolors + assert ax._theme_tokens["plot_background"] == "black" + assert ax._theme_tokens["axis_color"] == "white" + + def test_figure_facecolor_rcparam_affects_new_figures() -> None: with plt.rc_context({"figure.facecolor": "#123456"}): assert plt.figure().get_facecolor() == "#123456" From 3105899e7d69732dd1b75ac41563c07a9d95c85e Mon Sep 17 00:00:00 2001 From: Alek Petuskey Date: Mon, 27 Jul 2026 08:42:02 -0700 Subject: [PATCH 10/17] Restore dark background style after gallery test --- .../pyplot/test_rc_color_export_contracts.py | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/tests/pyplot/test_rc_color_export_contracts.py b/tests/pyplot/test_rc_color_export_contracts.py index 82a0f2c0..fc342b5b 100644 --- a/tests/pyplot/test_rc_color_export_contracts.py +++ b/tests/pyplot/test_rc_color_export_contracts.py @@ -48,21 +48,21 @@ def test_style_use_supports_bounded_dicts_and_ordered_lists() -> None: def test_dark_background_gallery_uses_prop_cycle_length() -> None: # Exact source idiom from Matplotlib 3.11's # galleries/examples/style_sheets/dark_background.py. - plt.style.use("dark_background") - length = 6 - x = np.linspace(0, length) - ncolors = len(plt.rcParams["axes.prop_cycle"]) - shift = np.linspace(0, length, ncolors, endpoint=False) - - _fig, ax = plt.subplots() - for offset in shift: - ax.plot(x, np.sin(x + offset), "o-") - - assert ncolors == 10 - assert ncolors == len(plt.rcParams["axes.prop_cycle"].by_key()["color"]) - assert len(ax.get_lines()) == ncolors - assert ax._theme_tokens["plot_background"] == "black" - assert ax._theme_tokens["axis_color"] == "white" + with plt.style.context("dark_background"): + length = 6 + x = np.linspace(0, length) + ncolors = len(plt.rcParams["axes.prop_cycle"]) + shift = np.linspace(0, length, ncolors, endpoint=False) + + _fig, ax = plt.subplots() + for offset in shift: + ax.plot(x, np.sin(x + offset), "o-") + + assert ncolors == 10 + assert ncolors == len(plt.rcParams["axes.prop_cycle"].by_key()["color"]) + assert len(ax.get_lines()) == ncolors + assert ax._theme_tokens["plot_background"] == "black" + assert ax._theme_tokens["axis_color"] == "white" def test_figure_facecolor_rcparam_affects_new_figures() -> None: From 6b21f46d4c9a9353da1abd1acf95028480363ebd Mon Sep 17 00:00:00 2001 From: Alek Petuskey Date: Mon, 27 Jul 2026 08:46:31 -0700 Subject: [PATCH 11/17] Match Matplotlib collection color defaults --- python/xy/pyplot/_axes.py | 13 +++- python/xy/pyplot/_plot_types.py | 22 ++++-- python/xy/pyplot/_rc.py | 2 + spec/matplotlib/compat.md | 2 +- .../test_gallery_collection_cycle_compat.py | 72 +++++++++++++++++++ 5 files changed, 104 insertions(+), 7 deletions(-) create mode 100644 tests/pyplot/test_gallery_collection_cycle_compat.py diff --git a/python/xy/pyplot/_axes.py b/python/xy/pyplot/_axes.py index d41d16c7..b00a7b1c 100644 --- a/python/xy/pyplot/_axes.py +++ b/python/xy/pyplot/_axes.py @@ -914,6 +914,7 @@ def __init__(self, figure: Any, *, y2_of: Optional["Axes"] = None) -> None: self._grid_style: dict[str, Any] = {} self._anchor: Optional[str] = None self._cycle = 0 + self._patch_cycle = 0 self._prop_cycle: Optional[list[str]] = None self._load_rc_chrome() self._chart: Any = None @@ -1090,6 +1091,14 @@ def _next_color(self) -> str: host._cycle += 1 return color + def _next_patch_color(self) -> str: + """Advance Matplotlib's independent fill/patch property cycle.""" + host = self._y2_of or self + cycle = getattr(host, "_prop_cycle", None) or PROP_CYCLE + color = cycle[host._patch_cycle % len(cycle)] + host._patch_cycle += 1 + return color + def _categorical_position(self, axis: str, label: Any) -> float: props = self._axis_props(axis) labels = props.setdefault("tick_labels", []) @@ -1226,6 +1235,7 @@ def clear(self) -> None: self._grid_axis = "both" self._grid_style = {} self._cycle = 0 + self._patch_cycle = 0 self._load_rc_chrome() self._chart = None self._twin = None @@ -2339,7 +2349,7 @@ def fill_between( ) starts = np.flatnonzero(valid_intervals & np.r_[True, ~valid_intervals[:-1]]) ends = np.flatnonzero(valid_intervals & np.r_[~valid_intervals[1:], True]) + 2 - resolved_color = resolve_color(color) if color is not None else self._next_color() + resolved_color = resolve_color(color) if color is not None else self._next_patch_color() entries: list[dict[str, Any]] = [] for start, end in zip(starts, ends, strict=True): sx, su, sl = xv[start:end], upper[start:end], lower[start:end] @@ -4320,6 +4330,7 @@ def set_prop_cycle(self, *args: Any, **kwargs: Any) -> None: resolved for color in colors if (resolved := resolve_color(color)) is not None ] self._cycle = 0 + self._patch_cycle = 0 self._invalidate() def secondary_xaxis( diff --git a/python/xy/pyplot/_plot_types.py b/python/xy/pyplot/_plot_types.py index 20dd6796..992b08d5 100644 --- a/python/xy/pyplot/_plot_types.py +++ b/python/xy/pyplot/_plot_types.py @@ -610,6 +610,8 @@ def _add(self, kind: str, entry: dict[str, Any]) -> dict[str, Any]: ... def _next_color(self) -> str: ... + def _next_patch_color(self) -> str: ... + def _mpl_dash(self, dash: Any, linewidth: Any) -> Any: ... def _point_scale(self) -> float: ... @@ -741,7 +743,7 @@ def hlines( "kwargs": { "color": resolve_color(chosen_color) if chosen_color is not None - else self._next_color(), + else resolve_color(rcParams["lines.color"]), "width": _float(np.asarray(width).reshape(-1)[0]), "opacity": 1.0 if alpha is None else float(alpha), "name": str(label) if label else None, @@ -811,7 +813,11 @@ def _vlines_entry( "factory": "segments", "args": (sx0, sy0, sx1, sy1), "kwargs": { - "color": resolve_color(color) if color is not None else self._next_color(), + "color": ( + resolve_color(color) + if color is not None + else resolve_color(rcParams["lines.color"]) + ), "width": _float(np.asarray(width).reshape(-1)[0]), "opacity": 1.0 if alpha is None else float(alpha), "name": str(label) if label else None, @@ -852,7 +858,11 @@ def broken_barh( check_unsupported(kwargs, "broken_barh()") entry_kwargs: dict[str, Any] = { "base": ranges[:, 0], - "color": resolve_color(color) if color is not None else self._next_color(), + "color": ( + resolve_color(color) + if color is not None + else resolve_color(rcParams["patch.facecolor"]) + ), "name": None if label is None else str(label), "opacity": 1.0 if alpha is None else float(alpha), "orientation": "horizontal", @@ -926,7 +936,7 @@ def fill_betweenx( from xy import kernels mark_kwargs: dict[str, Any] = { - "color": resolve_color(color) if color is not None else self._next_color(), + "color": resolve_color(color) if color is not None else self._next_patch_color(), "name": None if label is None else str(label), "opacity": 1.0 if alpha is None else float(alpha), } @@ -1016,7 +1026,9 @@ def fill(self, *args: Any, data: TableLike = None, **kwargs: Any) -> list[PolyCo if chosen is None and positional_color is not None: chosen = positional_color mark_kwargs: dict[str, Any] = { - "color": resolve_color(chosen) if chosen is not None else self._next_color(), + "color": ( + resolve_color(chosen) if chosen is not None else self._next_patch_color() + ), "name": None if label is None else str(label), "opacity": 1.0 if alpha is None else float(alpha), "_joined_fill": True, diff --git a/python/xy/pyplot/_rc.py b/python/xy/pyplot/_rc.py index 6be8c8cc..906c310b 100644 --- a/python/xy/pyplot/_rc.py +++ b/python/xy/pyplot/_rc.py @@ -33,10 +33,12 @@ def by_key(self) -> dict[str, list[str]]: "figure.figsize": (6.4, 4.8), # inches, matplotlib default "figure.dpi": 100.0, "figure.facecolor": "white", + "lines.color": "C0", "lines.linewidth": 1.5, "lines.markersize": 6.0, "lines.markeredgewidth": 1.0, "errorbar.capsize": 0.0, + "patch.facecolor": "C0", "patch.linewidth": 1.0, "patch.edgecolor": "black", "patch.force_edgecolor": False, diff --git a/spec/matplotlib/compat.md b/spec/matplotlib/compat.md index 50498b61..39ab3f79 100644 --- a/spec/matplotlib/compat.md +++ b/spec/matplotlib/compat.md @@ -56,7 +56,7 @@ dependency-free `triangles=` shorthand into Matplotlib's equivalent | `hist(bins=, range=, density=, cumulative=, weights=, orientation=, stacked=)` | Returns computed counts/edges; bar, step, and stepfilled families render in both vertical and horizontal orientations | | `hist2d`, `hexbin`, `ecdf` | 2D uniform binning uses the native Rust kernel; hexbin uses Matplotlib's two-offset-grid nearest-center assignment and six-triangle data-space cells, supports `C`, arbitrary scalar reducers, and `mincnt`, and retains only the bounded lattice rather than source points. `hist2d` view limits are the outer bin edges with no margin, matching Matplotlib's sticky mesh edges; non-uniform bins delegate to `pcolormesh` and autoscale through the quad-mesh path instead. `ecdf` carries the ordinary margin on the sample axis and is sticky at 0 and 1 on the cumulative axis | | `boxplot`, `violinplot`, `bxp`, `violin`, `errorbar` | Boxplots support notches, bootstrap/user confidence intervals, median overrides (drawn median only; notch CIs stay data-derived like Matplotlib), percentile/custom whiskers, cap widths, `sym`, and component colors/widths/alpha — dashed component linestyles fail loudly. Violins support Scott/Silverman/scalar/callable Gaussian-KDE bandwidths, quantiles, and low/high sides; the default (bw_method omitted) uses the native histogram violin mark, whose shape differs from the explicit KDE path. `boxplot` autoscales its value axis over the Tukey whiskers plus, when `showfliers` is on, the flier points. Its default category positions are 1-based and `manage_ticks=True` reserves half a unit around the outer positions, matching Matplotlib | -| `fill_between(x, y1, y2, where=, step=)` / `fill_betweenx` | Masks are split into finite contiguous polygons; step geometry is expanded exactly | +| `fill_between(x, y1, y2, where=, step=)` / `fill_betweenx` | Masks are split into finite contiguous polygons; step geometry is expanded exactly. Unspecified fill colors consume an independent patch cycle, so preceding line plots do not change the first fill from `C0` | | `stackplot` | All four baselines are computed by the native stacked-bounds kernel | | `imshow` / `pcolormesh` (`cmap=`, `vmin=`/`vmax=`, `origin=`) | `imshow` defaults to `rcParams['image.origin']`; nearest stays cell-exact, while named smoothing modes use dependency-free per-kernel approximations over a bounded 512–1024 px intermediate for both scalar and RGB(A) data. Images own independent logical-source and render arrays, and `AxesImage.set_data()` rebuilds both through the same normalization, origin, and resampling path as initial creation. Filter choice and intermediate size do not yet depend on final display resolution, and explicit `interpolation="auto"` remains unsupported. Unsupported stages/transforms fail loudly. Uniform meshes retain the texture fast path; nonuniform and curvilinear grids use native quad-to-triangle expansion. Both hug their outer cell edge with no margin, as Matplotlib's sticky image/mesh edges do | | `step`, `stairs`, `stem`, `eventplot` | Compact step/stem/segment marks; no Python-side vertex expansion | diff --git a/tests/pyplot/test_gallery_collection_cycle_compat.py b/tests/pyplot/test_gallery_collection_cycle_compat.py new file mode 100644 index 00000000..d278d8e3 --- /dev/null +++ b/tests/pyplot/test_gallery_collection_cycle_compat.py @@ -0,0 +1,72 @@ +"""Static regressions for Matplotlib's line and collection color defaults.""" + +from __future__ import annotations + +import pytest + +import xy.pyplot as plt + + +@pytest.fixture(autouse=True) +def _clean_state(): + yield + plt.close("all") + plt.rcdefaults() + + +def test_fill_family_has_an_independent_patch_cycle_from_plot() -> None: + _fig, ax = plt.subplots() + ax.set_prop_cycle(color=["magenta", "cyan"]) + + first_line = ax.plot([0, 1], [0, 1])[0] + first_fill = ax.fill_between([0, 1], [0, 1]) + second_fill = ax.fill_between([0, 1], [1, 2]) + second_line = ax.plot([0, 1], [2, 3])[0] + + assert first_line.get_color() == "magenta" + assert first_fill._entry["kwargs"]["color"] == "magenta" + assert second_fill._entry["kwargs"]["color"] == "cyan" + assert second_line.get_color() == "cyan" + + +def test_fill_and_fill_betweenx_share_the_patch_cycle() -> None: + _fig, ax = plt.subplots() + ax.set_prop_cycle(color=["red", "blue"]) + + polygon = ax.fill([0, 1, 0], [0, 0, 1])[0] + band = ax.fill_betweenx([0, 1], [0, 0], [1, 1]) + + assert polygon._entry["kwargs"]["color"] == "red" + assert band._entry["kwargs"]["color"] == "blue" + + +def test_broken_barh_uses_patch_facecolor_without_advancing_cycles() -> None: + fig, ax = plt.subplots() + collections = [ax.broken_barh([(index, 0.75)], (index, 0.5)) for index in range(3)] + + assert [collection._entry["kwargs"]["color"] for collection in collections] == [ + "#1f77b4", + "#1f77b4", + "#1f77b4", + ] + assert ax.plot([0, 1], [0, 1])[0].get_color() == "#1f77b4" + assert ax.fill_between([0, 1], [0, 1])._entry["kwargs"]["color"] == "#1f77b4" + + svg = ax._build_chart(*fig._panel_px()).figure().to_svg() + assert 'fill="#1f77b4"' in svg + + +def test_hlines_vlines_use_lines_color_without_advancing_or_overriding_explicit_color() -> None: + fig, ax = plt.subplots() + vertical = ax.vlines([0.25], [0], [1]) + explicit = ax.hlines([0.5], [0], [1], colors="red") + horizontal = ax.hlines([0.75], [0], [1]) + + assert vertical._entry["kwargs"]["color"] == "#1f77b4" + assert explicit._entry["kwargs"]["color"] == "red" + assert horizontal._entry["kwargs"]["color"] == "#1f77b4" + assert ax.plot([0, 1], [0, 1])[0].get_color() == "#1f77b4" + + svg = ax._build_chart(*fig._panel_px()).figure().to_svg() + assert 'stroke="#1f77b4"' in svg + assert 'stroke="red"' in svg From d6e0b0740fd971f84bda1eb9f4f047c5f1e0f831 Mon Sep 17 00:00:00 2001 From: Alek Petuskey Date: Mon, 27 Jul 2026 08:47:15 -0700 Subject: [PATCH 12/17] Fix fill_betweenx static export seams --- python/xy/_paint.py | 56 +++++++++++++++++++++----------- python/xy/pyplot/_plot_types.py | 4 +++ tests/pyplot/test_axes_charts.py | 33 +++++++++++++++++++ 3 files changed, 74 insertions(+), 19 deletions(-) diff --git a/python/xy/_paint.py b/python/xy/_paint.py index 8cf910ea..021057ac 100644 --- a/python/xy/_paint.py +++ b/python/xy/_paint.py @@ -12,12 +12,18 @@ def triangle_mesh_boundary(*vertices: np.ndarray) -> np.ndarray | None: - """Recover the single exterior ring of a tessellated simple polygon. + """Recover one exterior walk from a connected tessellated polygon. ``Axes.fill`` reaches the shared triangle renderer for WebGL, but static exporters should paint its triangulation as one polygon. Otherwise each independently antialiased triangle leaks a hairline of background (and applies translucent alpha more than once) along internal diagonals. + + A filled strip can pinch where its two curves meet. Its boundary then has + degree-four vertices rather than being a simple ring, and degenerate + triangles at the pinch can repeat an edge twice. Retaining odd-count edges + and following an Eulerian boundary walk preserves those touching lobes as + one static fill without exposing the tessellation. """ if len(vertices) != 6: raise ValueError("triangle mesh boundary requires six coordinate arrays") @@ -72,29 +78,41 @@ def vertex_key(point: tuple[float, float]) -> int: start_key, end_key = vertex_key(start), vertex_key(end) edge = (start_key, end_key) if start_key <= end_key else (end_key, start_key) edge_counts[edge] = edge_counts.get(edge, 0) + 1 - boundary = [edge for edge, count in edge_counts.items() if count == 1] + # Internal edges occur an even number of times. Degenerate triangles can + # contribute the same edge twice, so ``count == 1`` incorrectly removes a + # real boundary edge after a curve touches its baseline. + boundary = [ + edge for edge, count in edge_counts.items() if edge[0] != edge[1] and count % 2 + ] if len(boundary) < 3: return None - adjacency: dict[int, list[int]] = {} + adjacency: dict[int, set[int]] = {} for start, end in boundary: - adjacency.setdefault(start, []).append(end) - adjacency.setdefault(end, []).append(start) - if any(len(neighbors) != 2 for neighbors in adjacency.values()): + adjacency.setdefault(start, set()).add(end) + adjacency.setdefault(end, set()).add(start) + if any(len(neighbors) % 2 for neighbors in adjacency.values()): return None + + # Hierholzer's algorithm also handles pinch vertices where two or more + # boundary rings touch at one point. A disconnected boundary (for example, + # a polygon with a hole) deliberately falls back to triangle rendering: + # the current static fill command carries one walk and cannot preserve + # multiple-subpath winding semantics. first = boundary[0][0] - ring = [first] - previous: int | None = None - current = first - for _ in range(len(boundary)): - neighbors = adjacency[current] - following = neighbors[0] if neighbors[0] != previous else neighbors[1] - if following == first: - if len(ring) != len(boundary): - return None - return np.asarray([points_by_key[key] for key in ring], dtype=np.float64) - ring.append(following) - previous, current = current, following - return None + stack = [first] + walk: list[int] = [] + while stack: + current = stack[-1] + if adjacency[current]: + following = adjacency[current].pop() + adjacency[following].remove(current) + stack.append(following) + else: + walk.append(stack.pop()) + if len(walk) != len(boundary) + 1 or walk[0] != walk[-1]: + return None + walk.reverse() + return np.asarray([points_by_key[key] for key in walk[:-1]], dtype=np.float64) def direct_rgba(channel: dict[str, Any], n: int, read_column: ColumnReader) -> np.ndarray | None: diff --git a/python/xy/pyplot/_plot_types.py b/python/xy/pyplot/_plot_types.py index 992b08d5..cd7a78fd 100644 --- a/python/xy/pyplot/_plot_types.py +++ b/python/xy/pyplot/_plot_types.py @@ -939,6 +939,10 @@ def fill_betweenx( "color": resolve_color(color) if color is not None else self._next_patch_color(), "name": None if label is None else str(label), "opacity": 1.0 if alpha is None else float(alpha), + # Static exporters must paint each contiguous strip as one polygon. + # Independently antialiased triangles expose their shared edges as + # hairline seams, and translucent triangles can double-apply alpha. + "_joined_fill": True, } # Triangle meshes cannot stroke only the polygon perimeter; stroking # every tessellated triangle creates false internal striping. Keep the diff --git a/tests/pyplot/test_axes_charts.py b/tests/pyplot/test_axes_charts.py index 1ea5de2e..7b588a6c 100644 --- a/tests/pyplot/test_axes_charts.py +++ b/tests/pyplot/test_axes_charts.py @@ -102,6 +102,39 @@ def test_fill_between_uses_a_faint_full_perimeter_not_an_opaque_lower_line() -> assert trace.style["line_opacity"] == pytest.approx(0.2) +def test_fill_betweenx_static_export_joins_dense_triangle_strip(monkeypatch) -> None: + from xy import _raster + + fig, ax = plt.subplots() + y = np.arange(0.0, 2.0, 0.01) + ax.fill_betweenx(y, 0.0, np.sin(2 * np.pi * y), alpha=0.4) + + traces = _traces(ax) + assert len(traces) == 1 + assert traces[0].style["joined_fill"] is True + svg = ax._build_chart(*fig._panel_px()).figure().to_svg() + assert svg.count(" None: + fig, ax = plt.subplots() + y = np.arange(0.0, 2.0, 0.01) + curve = np.sin(2 * np.pi * y) + ax.fill_betweenx(y, 0.0, curve, where=np.abs(curve) > 0.5) + + traces = _traces(ax) + assert len(traces) == 4 + assert all(trace.style["joined_fill"] is True for trace in traces) + svg = ax._build_chart(*fig._panel_px()).figure().to_svg() + assert svg.count(" None: _fig, ax = plt.subplots() ax.bar(["a", "b"], [1, 2], bottom=[1, 1], label="one") From 23eb1b08abb44b65237f8d8c9d352b137f81c562 Mon Sep 17 00:00:00 2001 From: Farhan Ali Raza <62690310+FarhanAliRaza@users.noreply.github.com> Date: Mon, 27 Jul 2026 08:59:36 -0700 Subject: [PATCH 13/17] Preserve Matplotlib legend handle fidelity --- js/src/50_chartview.ts | 201 +++++++++++++------- python/xy/_raster.py | 93 +++++---- python/xy/_svg.py | 94 +++++---- python/xy/pyplot/_artists.py | 50 ++++- python/xy/pyplot/_axes.py | 57 ++++++ spec/matplotlib/compat-changelog.md | 9 + spec/matplotlib/compat.md | 4 +- tests/pyplot/test_legend_handle_fidelity.py | 165 ++++++++++++++++ 8 files changed, 531 insertions(+), 142 deletions(-) create mode 100644 tests/pyplot/test_legend_handle_fidelity.py diff --git a/js/src/50_chartview.ts b/js/src/50_chartview.ts index 71304beb..0ce76428 100644 --- a/js/src/50_chartview.ts +++ b/js/src/50_chartview.ts @@ -1948,72 +1948,10 @@ export class ChartView { svg.setAttribute("width", "18"); svg.setAttribute("height", "14"); svg.style.overflow = "visible"; - const requestedMarkerSize = Number(it.style?.size); - const hasMarkerSize = Number.isFinite(requestedMarkerSize) && requestedMarkerSize >= 0; - const markerSize = hasMarkerSize ? requestedMarkerSize : 9; - const paths = { - square: "M4.5 2.5h9v9h-9z", diamond: "M9 2l5 5-5 5-5-5z", - thin_diamond: "M9 2l3 5-3 5-3-5z", - triangle: "M9 2l-5 10h10z", triangle_down: "M9 12L4 2h10z", - triangle_left: "M4 7L14 2v10z", triangle_right: "M14 7L4 2v10z", - plus_line: "M9 2v10M4 7h10", x_line: "M5 3l8 8M13 3l-8 8", - cross: "M7.5 2h3v3.5H14v3h-3.5V12h-3V8.5H4v-3h3.5z", - x: "M5.5 2L9 5.5 12.5 2 14 3.5 10.5 7 14 10.5 12.5 12 9 8.5 5.5 12 4 10.5 7.5 7 4 3.5z", - pentagon: "M9 2.5L13.28 5.61 11.65 10.64H6.35L4.72 5.61z", - hexagon: "M9 2L13.3 4.5v5L9 12l-4.3-2.5v-5z", - star: "M9 2l1.5 3.1 3.5.5-2.5 2.5.6 3.5L9 10l-3.1 1.6.6-3.5L4 5.6l3.5-.5z" - }; const color = gradientPaint ? gradientPaint(svg) : safeCssPaint(this.root, bg); - if (it.style?.marker_glyph) { - const text = document.createElementNS(ns, "text"); - text.setAttribute("x", "9"); - text.setAttribute("y", "7"); - text.setAttribute("font-family", "DejaVu Sans"); - text.setAttribute("font-size", String(markerSize)); - text.setAttribute("text-anchor", "middle"); - text.setAttribute("dominant-baseline", "central"); - text.textContent = String(it.style.marker_glyph); - sw.style.setProperty("--xy-legend-swatch-fill", color); - sw.style.setProperty("--xy-legend-swatch-stroke", "none"); - sw.style.setProperty("--xy-legend-swatch-stroke-width", "0"); - svg.appendChild(text); - } else { - const path = document.createElementNS(ns, "path"); - if (it.style?.marker_path) { - const commands = []; - for (const contour of it.style.marker_path.contours || []) { - for (let offset = 0; offset + 1 < contour.length; offset += 2) { - const x = 9 + markerSize * Number(contour[offset]); - const y = 7 - markerSize * Number(contour[offset + 1]); - commands.push(`${offset === 0 ? "M" : "L"}${x} ${y}`); - } - if (it.style.marker_path.filled) commands.push("Z"); - } - path.setAttribute("d", commands.join(" ")); - } else if (it.symbol === "circle" || it.symbol === "point" || it.symbol === "pixel") { - const radius = markerSize / 2; - if (it.symbol === "pixel") path.setAttribute("d", `M${9 - radius} ${7 - radius}h${markerSize}v${markerSize}h-${markerSize}z`); - else path.setAttribute("d", `M9 ${7 - radius}a${radius} ${radius} 0 1 0 0 ${markerSize}a${radius} ${radius} 0 1 0 0 -${markerSize}`); - } else { - path.setAttribute("d", paths[it.symbol] || paths.square); - if (hasMarkerSize) { - const scale = markerSize / 9; - path.setAttribute("transform", `translate(9 7) scale(${scale}) translate(-9 -7)`); - } - } - const lineMarker = it.symbol.endsWith("_line") || - (it.style?.marker_path && !it.style.marker_path.filled); - sw.style.setProperty( - "--xy-legend-swatch-fill", - lineMarker ? "none" : color, - ); - sw.style.setProperty("--xy-legend-swatch-stroke", color); - sw.style.setProperty( - "--xy-legend-swatch-stroke-width", - String(it.style?.stroke_width || 1), - ); - svg.appendChild(path); - } + this._appendLegendMarker( + svg, sw, { ...(it.style || {}), symbol: it.symbol }, color, 9, 7, true, + ); sw.appendChild(svg); sw.style.setProperty("--xy-legend-swatch-width", "18px"); sw.style.setProperty("--xy-legend-swatch-height", "14px"); @@ -2028,10 +1966,27 @@ export class ChartView { ln.setAttribute("y1", "6"); ln.setAttribute("x2", "21"); ln.setAttribute("y2", "6"); + const lineColor = gradientPaint + ? gradientPaint(svg) + : safeCssPaint(this.root, bg); + if (it.style?.legend_gap_color && it.style?.dash?.length) { + const gaps = document.createElementNS(ns, "line"); + gaps.setAttribute("x1", "1"); + gaps.setAttribute("y1", "6"); + gaps.setAttribute("x2", "21"); + gaps.setAttribute("y2", "6"); + gaps.setAttribute( + "stroke", + safeCssPaint(this.root, it.style.legend_gap_color), + ); + gaps.setAttribute("stroke-width", String(it.style?.width ?? 1.5)); + gaps.setAttribute("stroke-dasharray", "none"); + svg.appendChild(gaps); + } sw.style.setProperty("--xy-legend-swatch-fill", "none"); sw.style.setProperty( "--xy-legend-swatch-stroke", - gradientPaint ? gradientPaint(svg) : safeCssPaint(this.root, bg), + lineColor, ); // ?? not ||: an explicit lw=0 keeps 0 and draws nothing, like the // exporters' dict-default and Matplotlib itself. @@ -2043,6 +1998,11 @@ export class ChartView { sw.style.setProperty("--xy-legend-swatch-dasharray", it.style.dash.join(" ")); } svg.appendChild(ln); + if (it.style?.legend_marker) { + this._appendLegendMarker( + svg, sw, it.style.legend_marker, lineColor, 11, 6, false, + ); + } sw.appendChild(svg); sw.style.setProperty("--xy-legend-swatch-width", "22px"); sw.style.setProperty("--xy-legend-swatch-height", "12px"); @@ -2054,6 +2014,27 @@ export class ChartView { "--xy-legend-swatch-paint", safeCssPaint(this.root, bg), ); + const patchStrokeWidth = Number(it.style?.stroke_width); + if (Number.isFinite(patchStrokeWidth) && patchStrokeWidth > 0) { + const ns = "http://www.w3.org/2000/svg"; + const svg = document.createElementNS(ns, "svg"); + svg.setAttribute("viewBox", "0 0 12 10"); + const rect = document.createElementNS(ns, "rect"); + const inset = Math.min(2, patchStrokeWidth / 2); + rect.setAttribute("x", String(inset)); + rect.setAttribute("y", String(inset)); + rect.setAttribute("width", String(12 - 2 * inset)); + rect.setAttribute("height", String(10 - 2 * inset)); + rect.setAttribute("rx", "2"); + rect.setAttribute("fill", "none"); + rect.setAttribute( + "stroke", + safeCssPaint(this.root, it.style?.stroke || bg), + ); + rect.setAttribute("stroke-width", String(patchStrokeWidth)); + svg.appendChild(rect); + sw.appendChild(svg); + } // Hatch layers are explicit mark semantics and sit over that sanitized // base paint without forcing the base color into an inline background. if (it.style?.hatch) { @@ -2104,6 +2085,94 @@ export class ChartView { return lg; } + _appendLegendMarker(svg, sw, marker, defaultColor, cx, cy, wrapperPaint) { + const ns = "http://www.w3.org/2000/svg"; + const requestedMarkerSize = Number(marker?.size); + const hasMarkerSize = Number.isFinite(requestedMarkerSize) && requestedMarkerSize >= 0; + const markerSize = hasMarkerSize ? requestedMarkerSize : 9; + const symbol = String(marker?.symbol || "circle"); + const fillColor = safeCssPaint(this.root, marker?.color || defaultColor); + const hasStroke = marker?.stroke != null || marker?.stroke_width != null; + const strokeColor = hasStroke + ? safeCssPaint(this.root, marker?.stroke || fillColor) + : (wrapperPaint ? fillColor : "none"); + const paths = { + square: "M4.5 2.5h9v9h-9z", diamond: "M9 2l5 5-5 5-5-5z", + thin_diamond: "M9 2l3 5-3 5-3-5z", + triangle: "M9 2l-5 10h10z", triangle_down: "M9 12L4 2h10z", + triangle_left: "M4 7L14 2v10z", triangle_right: "M14 7L4 2v10z", + plus_line: "M9 2v10M4 7h10", x_line: "M5 3l8 8M13 3l-8 8", + cross: "M7.5 2h3v3.5H14v3h-3.5V12h-3V8.5H4v-3h3.5z", + x: "M5.5 2L9 5.5 12.5 2 14 3.5 10.5 7 14 10.5 12.5 12 9 8.5 5.5 12 4 10.5 7.5 7 4 3.5z", + pentagon: "M9 2.5L13.28 5.61 11.65 10.64H6.35L4.72 5.61z", + hexagon: "M9 2L13.3 4.5v5L9 12l-4.3-2.5v-5z", + star: "M9 2l1.5 3.1 3.5.5-2.5 2.5.6 3.5L9 10l-3.1 1.6.6-3.5L4 5.6l3.5-.5z" + }; + if (marker?.marker_glyph) { + const text = document.createElementNS(ns, "text"); + text.setAttribute("x", String(cx)); + text.setAttribute("y", String(cy)); + text.setAttribute("font-family", "DejaVu Sans"); + text.setAttribute("font-size", String(markerSize)); + text.setAttribute("text-anchor", "middle"); + text.setAttribute("dominant-baseline", "central"); + if (wrapperPaint) { + sw.style.setProperty("--xy-legend-swatch-fill", fillColor); + sw.style.setProperty("--xy-legend-swatch-stroke", "none"); + sw.style.setProperty("--xy-legend-swatch-stroke-width", "0"); + } else { + text.setAttribute("fill", fillColor); + } + text.textContent = String(marker.marker_glyph); + svg.appendChild(text); + return; + } + const path = document.createElementNS(ns, "path"); + if (marker?.marker_path) { + const commands = []; + for (const contour of marker.marker_path.contours || []) { + for (let offset = 0; offset + 1 < contour.length; offset += 2) { + const x = cx + markerSize * Number(contour[offset]); + const y = cy - markerSize * Number(contour[offset + 1]); + commands.push(`${offset === 0 ? "M" : "L"}${x} ${y}`); + } + if (marker.marker_path.filled) commands.push("Z"); + } + path.setAttribute("d", commands.join(" ")); + } else if (symbol === "circle" || symbol === "point" || symbol === "pixel") { + const radius = markerSize / 2; + if (symbol === "pixel") + path.setAttribute("d", `M${cx - radius} ${cy - radius}h${markerSize}v${markerSize}h-${markerSize}z`); + else + path.setAttribute("d", `M${cx} ${cy - radius}a${radius} ${radius} 0 1 0 0 ${markerSize}a${radius} ${radius} 0 1 0 0 -${markerSize}`); + } else { + path.setAttribute("d", paths[symbol] || paths.square); + const scale = hasMarkerSize ? markerSize / 9 : 1; + path.setAttribute( + "transform", + `translate(${cx} ${cy}) scale(${scale}) translate(-9 -7)`, + ); + } + const lineMarker = symbol.endsWith("_line") || + (marker?.marker_path && !marker.marker_path.filled); + const fill = lineMarker ? "none" : fillColor; + const requestedStrokeWidth = Number(marker?.stroke_width); + const strokeWidth = Number.isFinite(requestedStrokeWidth) + ? requestedStrokeWidth + : (wrapperPaint ? 1 : 0); + if (wrapperPaint) { + sw.style.setProperty("--xy-legend-swatch-fill", fill); + sw.style.setProperty("--xy-legend-swatch-stroke", strokeColor); + sw.style.setProperty("--xy-legend-swatch-stroke-width", String(strokeWidth)); + } else { + path.setAttribute("fill", fill); + path.setAttribute("stroke", strokeColor); + path.setAttribute("stroke-width", String(strokeWidth)); + path.setAttribute("stroke-dasharray", "none"); + } + svg.appendChild(path); + } + // Paint an SVG swatch with the item's colormap ramp: registers a // in the swatch's own defs and returns its paint URL. // IDs are document-global, so a module counter keeps multiple charts on diff --git a/python/xy/_raster.py b/python/xy/_raster.py index 8647fd8d..4d7971fb 100644 --- a/python/xy/_raster.py +++ b/python/xy/_raster.py @@ -2397,45 +2397,36 @@ def _emit_legend( hx0, hx1, cy = rx, rx + handle, ry + text_h / 2 kind = t.get("kind") if kind == "scatter": - symbol = style.get("symbol", "circle") - sym = _SYMBOLS.get(symbol, 0) - marker_path = style.get("marker_path") - marker_glyph = style.get("marker_glyph") - sw = float(style.get("stroke_width", 0.0)) - if ( - symbol in {"plus_line", "x_line"} - or (marker_path and not bool(marker_path.get("filled", True))) - ) and sw <= 0: - sw = 1.0 - stroke = _rgba(style.get("stroke"), color_str) if sw > 0 else (0, 0, 0, 0) - radius = max(0.5, float(style.get("size", 8.0)) / 2.0) - center = (hx0 + hx1) / 2 - if marker_glyph: - cmd.text(center, cy + radius * 0.68, 1, 2 * radius, c, str(marker_glyph)) - elif marker_path: - for contour in marker_path.get("contours") or (): - values = np.asarray(contour, dtype=np.float64).reshape(-1, 2) - points = [ - (center + 2 * radius * float(px), cy - 2 * radius * float(py)) - for px, py in values - ] - if bool(marker_path.get("filled", True)): - cmd.fill(points, c) - if sw > 0: - cmd.stroke(points, sw, stroke if stroke[3] else c, closed=True) - else: - cmd.stroke(points, max(1.0, sw), c) - else: - cmd.point(center, cy, radius, sym, c, sw, stroke) + _emit_legend_marker(cmd, style, (hx0 + hx1) / 2, cy, color_str) elif kind in _LEGEND_LINE_KINDS: + width = float(style.get("width", 1.5)) + gap_color = style.get("legend_gap_color") + if gap_color is not None and style.get("dash"): + cmd.stroke( + [(hx0, cy), (hx1, cy)], + width, + _parse_color(_css(gap_color, color_str)), + ) cmd.stroke( [(hx0, cy), (hx1, cy)], - float(style.get("width", 1.5)), + width, c, dash=style.get("dash"), ) + marker = style.get("legend_marker") + if isinstance(marker, dict): + _emit_legend_marker(cmd, marker, (hx0 + hx1) / 2, cy, color_str) else: - cmd.fill(_rect_pts(hx0, cy - swatch_h / 2, hx1, cy + swatch_h / 2), c) + rect = _rect_pts(hx0, cy - swatch_h / 2, hx1, cy + swatch_h / 2) + cmd.fill(rect, c) + stroke_width = float(style.get("stroke_width", 0.0)) + if stroke_width > 0: + cmd.stroke( + rect, + stroke_width, + _parse_color(_css(style.get("stroke"), color_str)), + closed=True, + ) hatch = style.get("hatch") if hatch: _emit_legend_hatch( @@ -2457,6 +2448,44 @@ def _emit_legend( ) +def _emit_legend_marker( + cmd: _Cmd, + style: dict[str, Any], + x: float, + y: float, + default_color: str, +) -> None: + """Render one Matplotlib marker centered on its legend line sample.""" + symbol = str(style.get("symbol", "circle")) + sym = _SYMBOLS.get(symbol, 0) + marker_path = style.get("marker_path") + marker_glyph = style.get("marker_glyph") + color_str = _css(style.get("color"), default_color) + color = _parse_color(color_str) + sw = float(style.get("stroke_width", 0.0)) + if ( + symbol in {"plus_line", "x_line"} + or (marker_path and not bool(marker_path.get("filled", True))) + ) and sw <= 0: + sw = 1.0 + stroke = _rgba(style.get("stroke"), color_str) if sw > 0 else (0, 0, 0, 0) + radius = max(0.5, float(style.get("size", 8.0)) / 2.0) + if marker_glyph: + cmd.text(x, y + radius * 0.68, 1, 2 * radius, color, str(marker_glyph)) + elif marker_path: + for contour in marker_path.get("contours") or (): + values = np.asarray(contour, dtype=np.float64).reshape(-1, 2) + points = [(x + 2 * radius * float(px), y - 2 * radius * float(py)) for px, py in values] + if bool(marker_path.get("filled", True)): + cmd.fill(points, color) + if sw > 0: + cmd.stroke(points, sw, stroke if stroke[3] else color, closed=True) + else: + cmd.stroke(points, max(1.0, sw), color) + else: + cmd.point(x, y, radius, sym, color, sw, stroke) + + def _emit_legend_hatch( cmd: _Cmd, x0: float, diff --git a/python/xy/_svg.py b/python/xy/_svg.py index 78534670..f90cbd31 100644 --- a/python/xy/_svg.py +++ b/python/xy/_svg.py @@ -3850,54 +3850,37 @@ def _legend( hx0, hx1, cy = rx, rx + handle, ry + text_h / 2 kind = t.get("kind") if kind == "scatter": - symbol = style.get("symbol", "circle") - builder = _SYMBOL_BUILDERS.get(symbol) - marker_path = style.get("marker_path") - marker_glyph = style.get("marker_glyph") - radius = max(0.5, float(style.get("size", 8.0)) / 2.0) - stroke_w = float(style.get("stroke_width", 0.0)) - line_symbol = symbol in {"plus_line", "x_line"} or ( - bool(marker_path) and not bool(marker_path.get("filled", True)) - ) - if line_symbol and stroke_w <= 0: - stroke_w = 1.0 - stroke = _css(style.get("stroke"), color) if stroke_w or line_symbol else None - stroke_attr = ( - f' stroke="{escape(stroke)}" stroke-width="{_num(stroke_w)}"' if stroke else "" - ) - cxm = (hx0 + hx1) / 2 - if marker_glyph: - rows.append( - f'{escape(str(marker_glyph))}' - ) - elif marker_path: - d = _authored_marker_path_d(marker_path, float(cxm), float(cy), 2 * radius) - fill = escape(color) if bool(marker_path.get("filled", True)) else "none" - rows.append(f'') - elif builder is None: - rows.append( - f'' - ) - else: + rows.append(_legend_marker_svg(style, (hx0 + hx1) / 2, cy, color)) + elif kind in _LEGEND_LINE_KINDS: + width = float(style.get("width", 1.5)) + gap_color = style.get("legend_gap_color") + if gap_color is not None and style.get("dash"): rows.append( - builder(float(cxm), float(cy), radius) - + f' fill="{escape(color)}"{stroke_attr}/>' + f'' ) - elif kind in _LEGEND_LINE_KINDS: rows.append( f'" ) + marker = style.get("legend_marker") + if isinstance(marker, dict): + rows.append(_legend_marker_svg(marker, (hx0 + hx1) / 2, cy, color)) else: + stroke_width = float(style.get("stroke_width", 0.0)) + stroke = ( + f' stroke="{escape(_css(style.get("stroke"), color))}" ' + f'stroke-width="{_num(stroke_width)}"' + if stroke_width > 0 + else "" + ) rows.append( f'' + f'rx="2" fill="{escape(color)}"{stroke}/>' ) if style.get("hatch"): rows.append( @@ -3919,6 +3902,41 @@ def _legend( return f"{''.join(rows)}" +def _legend_marker_svg(style: dict[str, Any], x: float, y: float, default_color: str) -> str: + """Render one Matplotlib legend marker at the center of its line handle.""" + symbol = str(style.get("symbol", "circle")) + builder = _SYMBOL_BUILDERS.get(symbol) + marker_path = style.get("marker_path") + marker_glyph = style.get("marker_glyph") + radius = max(0.5, float(style.get("size", 8.0)) / 2.0) + color = _css(style.get("color"), default_color) + stroke_w = float(style.get("stroke_width", 0.0)) + line_symbol = symbol in {"plus_line", "x_line"} or ( + bool(marker_path) and not bool(marker_path.get("filled", True)) + ) + if line_symbol and stroke_w <= 0: + stroke_w = 1.0 + stroke = _css(style.get("stroke"), color) if stroke_w or line_symbol else None + stroke_attr = f' stroke="{escape(stroke)}" stroke-width="{_num(stroke_w)}"' if stroke else "" + if marker_glyph: + return ( + f'{escape(str(marker_glyph))}' + ) + if marker_path: + d = _authored_marker_path_d(marker_path, float(x), float(y), 2 * radius) + fill = escape(color) if bool(marker_path.get("filled", True)) else "none" + return f'' + if builder is None: + return ( + f'' + ) + return builder(float(x), float(y), radius) + f' fill="{escape(color)}"{stroke_attr}/>' + + def _legend_hatch_svg(x0: float, x1: float, y0: float, y1: float, hatch: str, color: str) -> str: """Small, bounded hatch sample for explicit patch legend handles.""" paths: list[str] = [] diff --git a/python/xy/pyplot/_artists.py b/python/xy/pyplot/_artists.py index 0fec4e02..adf17bf5 100644 --- a/python/xy/pyplot/_artists.py +++ b/python/xy/pyplot/_artists.py @@ -1337,7 +1337,10 @@ def __init__(self, lines: PolyCollection, arrows: PolyCollection) -> None: def _legend_item_from_entry( - entry: dict[str, Any], label: Any, point_scale: float + entry: dict[str, Any], + label: Any, + point_scale: float, + marker_entry: Optional[dict[str, Any]] = None, ) -> dict[str, Any]: """Freeze a plotted entry into a standalone legend swatch descriptor. @@ -1362,6 +1365,12 @@ def _legend_item_from_entry( opacity = kw.get("opacity") if opacity is not None: style["opacity"] = float(opacity) + stroke = kw.get("stroke") + if isinstance(stroke, str): + style["stroke"] = stroke + stroke_width = kw.get("stroke_width") + if stroke_width is not None and np.isscalar(stroke_width): + style["stroke_width"] = float(stroke_width) hatch = kw.get("hatch") if hatch: style["hatch"] = str(hatch) @@ -1386,6 +1395,11 @@ def _legend_item_from_entry( style["dash"] = resolved elif isinstance(dash, (list, tuple)): style["dash"] = [float(v) for v in dash] + gap_color = kw.get("_gapcolor") + if isinstance(gap_color, str): + style["legend_gap_color"] = gap_color + if marker_entry is not None: + style["legend_marker"] = _legend_marker_style(marker_entry) if kind == "scatter": symbol = kw.get("symbol") if symbol: @@ -1396,6 +1410,26 @@ def _legend_item_from_entry( return {"name": str(label), "kind": kind, "style": style} +def _legend_marker_style(entry: dict[str, Any]) -> dict[str, Any]: + """Freeze a pyplot marker overlay into a renderer-neutral legend marker.""" + kw = entry.get("kwargs") or {} + marker: dict[str, Any] = {"symbol": str(kw.get("symbol", "circle"))} + for source, target in ( + ("color", "color"), + ("stroke", "stroke"), + ("_marker_path", "marker_path"), + ("_marker_glyph", "marker_glyph"), + ): + value = kw.get(source) + if value is not None: + marker[target] = value + for key in ("size", "stroke_width"): + value = kw.get(key) + if value is not None and np.isscalar(value): + marker[key] = float(value) + return marker + + class Legend: """A standalone legend artist, as ``matplotlib.legend.Legend``. @@ -1414,7 +1448,7 @@ def __init__( f"labels ({len(labels)}); the extras are ignored", stacklevel=2, ) - self._pairs: list[tuple[dict[str, Any], Any]] = [] + self._pairs: list[tuple[dict[str, Any], Any, Optional[dict[str, Any]]]] = [] for handle, label in zip(handles, labels, strict=False): entry = getattr(handle, "_entry", None) if entry is None: @@ -1428,7 +1462,12 @@ def __init__( stacklevel=2, ) continue - self._pairs.append((entry, label)) + marker_entry = None + if isinstance(handle, Line2D): + marker_entries = handle._marker_entries() + if marker_entries and marker_entries[0] is not entry: + marker_entry = marker_entries[0] + self._pairs.append((entry, label, marker_entry)) self._kwargs = dict(kwargs) if loc is not None: self._kwargs.setdefault("loc", loc) @@ -1444,7 +1483,10 @@ def _attach(self, parent: Any) -> None: self._parent = parent self._options = parent._compose_legend_options(dict(self._kwargs)) scale = parent._point_scale() - self._items = [_legend_item_from_entry(entry, label, scale) for entry, label in self._pairs] + self._items = [ + _legend_item_from_entry(entry, label, scale, marker_entry) + for entry, label, marker_entry in self._pairs + ] def spec(self) -> dict[str, Any]: """The option dict plus explicit items, ready for the render payload.""" diff --git a/python/xy/pyplot/_axes.py b/python/xy/pyplot/_axes.py index b00a7b1c..84b23f22 100644 --- a/python/xy/pyplot/_axes.py +++ b/python/xy/pyplot/_axes.py @@ -6005,6 +6005,60 @@ def _chart_children( children.append(xy.text(x, y, *e["args"][2:], **text_kw)) return children + def _apply_legend_handle_styles( + self, + core_figure: Any, + claimed_trace_ids: Optional[set[int]] = None, + ) -> set[int]: + """Attach Matplotlib-only handle paint to automatic legend traces. + + Plot markers and dash gap colors are separate XY marks so the data + renderer can stay compact, but Matplotlib's ``HandlerLine2D`` combines + them into one legend handle. Match each named source entry to its + materialized trace and retain that handle-only state without changing + the plotted geometry or replacing the automatic interactive legend. + """ + from ._artists import _legend_marker_style + + claimed = set() if claimed_trace_ids is None else claimed_trace_ids + traces = list(core_figure.traces) + line_factories = {"segments", "step", "stairs", "errorbar"} + for index, entry in enumerate(self._entries): + kwargs = entry.get("kwargs") or {} + name = kwargs.get("name") + if not name or str(name).startswith("_"): + continue + kind = entry.get("kind") + if kind in {"line", "@axline"}: + trace_kind = "line" + elif kind == "@mark" and entry.get("factory") in line_factories: + trace_kind = str(entry["factory"]) + else: + continue + target = next( + ( + trace + for trace in traces + if trace.id not in claimed + and trace.kind == trace_kind + and trace.name == str(name) + ), + None, + ) + if target is None: + continue + claimed.add(target.id) + gap_color = kwargs.get("_gapcolor") + if isinstance(gap_color, str): + target.style["legend_gap_color"] = gap_color + if index + 1 >= len(self._entries): + continue + marker_entry = self._entries[index + 1] + if marker_entry.get("kind") != "scatter" or not marker_entry.get("_legend_skip"): + continue + target.style["legend_marker"] = _legend_marker_style(marker_entry) + return claimed + def _plot_rect_px( self, width: int, @@ -6757,6 +6811,9 @@ def _build_chart(self, width: int, height: int) -> Any: styles=chrome_styles, ) core_figure = self._chart.figure() + claimed_legend_traces = self._apply_legend_handle_styles(core_figure) + if self._twin is not None: + self._twin._apply_legend_handle_styles(core_figure, claimed_legend_traces) if self._legend and self._legend_artist is None and "border_pad" in self._legend_options: core_figure.legend_options["border_pad"] = self._legend_options["border_pad"] if self._legend_items is not None: diff --git a/spec/matplotlib/compat-changelog.md b/spec/matplotlib/compat-changelog.md index 0e16172b..e1d868f3 100644 --- a/spec/matplotlib/compat-changelog.md +++ b/spec/matplotlib/compat-changelog.md @@ -4,6 +4,15 @@ This changelog records changes to the upstream compatibility target and to the meaning of xy's compatibility levels. It complements the project changelog, which covers user-visible releases across the whole package. +## Legend handle fidelity — 2026-07-27 + +- Patch handles retain independent face and edge paint, so an unfilled bar + with a visible outline no longer becomes an invisible legend swatch. +- Dashed `Line2D` handles retain their alternating `gapcolor` beneath the + foreground dash pattern. +- Line handles retain their centered marker shape, size, face, and edge paint + for clean, masked, and NaN-broken paths. + ## Style-sheet gallery source compatibility — 2026-07-27 - The bounded `rcParams["axes.prop_cycle"]` proxy now reports the installed diff --git a/spec/matplotlib/compat.md b/spec/matplotlib/compat.md index 39ab3f79..9e2384e1 100644 --- a/spec/matplotlib/compat.md +++ b/spec/matplotlib/compat.md @@ -50,9 +50,9 @@ dependency-free `triangles=` shorthand into Matplotlib's equivalent | matplotlib | notes | |---|---| -| `plt.plot` / `ax.plot` | format strings (`'r--o'`), multiple series per call, implicit x, `label=`, `lw=`, `ls=`, `alpha=`, marker face/edge styling, directional `^`/`v`/`<`/`>` triangles and distinct `+`/`x` glyphs, `markevery`, and dependency-free affine *data* transforms (`Affine2D + ax.transData`); axes/figure-fraction transforms on data artists, partial fill styles, and cap/join policies fail loudly | +| `plt.plot` / `ax.plot` | format strings (`'r--o'`), multiple series per call, implicit x, `label=`, `lw=`, `ls=`, `alpha=`, marker face/edge styling, directional `^`/`v`/`<`/`>` triangles and distinct `+`/`x` glyphs, `markevery`, and dependency-free affine *data* transforms (`Affine2D + ax.transData`). Legend handles retain the line's dash/gapcolor and centered marker state even when masked or NaN data materializes as independent segments; axes/figure-fraction transforms on data artists, partial fill styles, and cap/join policies fail loudly | | `scatter(x, y, s=, c=, cmap=, vmin=, vmax=, alpha=, marker=, edgecolors=, plotnonfinite=)` | `s` (pt², area) maps to pixel diameter; numeric 1-D `c` remains a colormap encoding, while `N×3`/`N×4` face and edge colors, alpha arrays, sizes, and linewidth arrays stay in one collection. Explicit alpha replaces intrinsic RGBA alpha, matching Matplotlib. In addition to the named marker table, bounded regular `(sides, style[, angle])` tuples, finite custom vertex paths (up to 64 vertices), and single-glyph mathtext markers render distinctly in browser, SVG, PNG, and legends. Longer/multi-glyph authored paths and custom norms fail loudly | -| `bar`, `barh`, `grouped_bar`, `bar_label` | string categories, stacking bases, per-bar face/edge color-alpha pairs and linewidths, plus iterable/indexable `BarContainer.patches` views whose setters mutate the parent batched trace | +| `bar`, `barh`, `grouped_bar`, `bar_label` | string categories, stacking bases, per-bar face/edge color-alpha pairs and linewidths, plus iterable/indexable `BarContainer.patches` views whose setters mutate the parent batched trace. Legend patch handles retain independent face, edge, and edge-width paint, including unfilled outlined bars | | `hist(bins=, range=, density=, cumulative=, weights=, orientation=, stacked=)` | Returns computed counts/edges; bar, step, and stepfilled families render in both vertical and horizontal orientations | | `hist2d`, `hexbin`, `ecdf` | 2D uniform binning uses the native Rust kernel; hexbin uses Matplotlib's two-offset-grid nearest-center assignment and six-triangle data-space cells, supports `C`, arbitrary scalar reducers, and `mincnt`, and retains only the bounded lattice rather than source points. `hist2d` view limits are the outer bin edges with no margin, matching Matplotlib's sticky mesh edges; non-uniform bins delegate to `pcolormesh` and autoscale through the quad-mesh path instead. `ecdf` carries the ordinary margin on the sample axis and is sticky at 0 and 1 on the cumulative axis | | `boxplot`, `violinplot`, `bxp`, `violin`, `errorbar` | Boxplots support notches, bootstrap/user confidence intervals, median overrides (drawn median only; notch CIs stay data-derived like Matplotlib), percentile/custom whiskers, cap widths, `sym`, and component colors/widths/alpha — dashed component linestyles fail loudly. Violins support Scott/Silverman/scalar/callable Gaussian-KDE bandwidths, quantiles, and low/high sides; the default (bw_method omitted) uses the native histogram violin mark, whose shape differs from the explicit KDE path. `boxplot` autoscales its value axis over the Tukey whiskers plus, when `showfliers` is on, the flier points. Its default category positions are 1-based and `manage_ticks=True` reserves half a unit around the outer positions, matching Matplotlib | diff --git a/tests/pyplot/test_legend_handle_fidelity.py b/tests/pyplot/test_legend_handle_fidelity.py new file mode 100644 index 00000000..7550b1d7 --- /dev/null +++ b/tests/pyplot/test_legend_handle_fidelity.py @@ -0,0 +1,165 @@ +from __future__ import annotations + +import re + +import numpy as np +import pytest + +import xy.pyplot as plt +from xy import _raster, _svg + + +def teardown_function() -> None: + plt.close("all") + + +def _legend_items(ax) -> tuple[list[dict], str]: + core = ax._build_chart(640, 480).figure() + spec, _blob = core.build_payload() + items = _svg.legend_items(spec["traces"]) + svg = _svg._legend( + items, + {"x": 0.0, "y": 0.0, "w": 400.0, "h": 200.0}, + {"style": {"background": "transparent"}}, + "plot", + ) + return items, svg + + +def test_patch_legend_keeps_transparent_face_and_authored_edge(monkeypatch) -> None: + _fig, ax = plt.subplots() + ax.bar([0, 1], [2, 3], color="none", edgecolor="black", linewidth=2, label="outline") + ax.legend() + + [item], svg = _legend_items(ax) + assert item["style"]["color"] == "transparent" + assert item["style"]["stroke"] == "black" + assert item["style"]["stroke_width"] == pytest.approx(2.0) + assert re.search( + r']*fill="transparent" stroke="black" stroke-width="2"/>', + svg, + ) + + strokes = [] + monkeypatch.setattr( + _raster._Cmd, + "stroke", + lambda self, points, width, color, closed=False, dash=None, cap="round": strokes.append( + (width, color, closed, dash) + ), + ) + cmd = _raster._Cmd(1.0) + _raster._emit_legend( + cmd, + [item], + {"x": 0.0, "y": 0.0, "w": 400.0, "h": 200.0}, + {"style": {"background": "transparent"}}, + ) + assert (2.0, (0, 0, 0, 255), True, None) in strokes + + +def test_dashed_line_legend_keeps_gap_color_in_every_static_renderer(monkeypatch) -> None: + _fig, ax = plt.subplots() + ax.plot( + [0, 1], + [0, 1], + dashes=[4, 4], + gapcolor="tab:pink", + color="tab:blue", + label="alternating", + ) + ax.legend() + + [item], svg = _legend_items(ax) + assert item["style"]["legend_gap_color"] == "#e377c2" + lines = re.findall(r"]+/>", svg) + assert 'stroke="#e377c2"' in lines[0] + assert "stroke-dasharray" not in lines[0] + assert 'stroke="#1f77b4"' in lines[1] + assert 'stroke-dasharray="8.33,8.33"' in lines[1] + + strokes = [] + monkeypatch.setattr( + _raster._Cmd, + "stroke", + lambda self, points, width, color, closed=False, dash=None, cap="round": strokes.append( + (color, dash) + ), + ) + _raster._emit_legend( + _raster._Cmd(1.0), + [item], + {"x": 0.0, "y": 0.0, "w": 400.0, "h": 200.0}, + {"style": {"background": "transparent"}}, + ) + assert strokes[:2] == [ + ((227, 119, 194, 255), None), + ((31, 119, 180, 255), [8.3333, 8.3333]), + ] + + +@pytest.mark.parametrize( + "values", + ( + [0.0, 0.5, 1.0], + [0.0, np.nan, 1.0], + np.ma.masked_array([0.0, 0.5, 1.0], mask=[False, True, False]), + ), +) +def test_line_legend_keeps_center_marker_for_clean_nan_and_masked_data(values, monkeypatch) -> None: + _fig, ax = plt.subplots() + (line,) = ax.plot([0, 1, 2], values, "o-", color="tab:orange", label="marked") + line.set_markersize(7) + line.set_markerfacecolor("white") + line.set_markeredgecolor("tab:orange") + ax.legend() + + [item], svg = _legend_items(ax) + marker = item["style"]["legend_marker"] + assert marker["symbol"] == "circle" + assert marker["color"] == "white" + assert marker["stroke"] == "#ff7f0e" + assert marker["size"] == pytest.approx(11.1111111111) + assert re.search( + r']*fill="white" stroke="#ff7f0e" stroke-width="1.39"/>', + svg, + ) + + points = [] + monkeypatch.setattr( + _raster._Cmd, + "point", + lambda self, x, y, radius, symbol, fill, stroke_width, stroke: points.append( + (radius, fill, stroke_width, stroke) + ), + ) + _raster._emit_legend( + _raster._Cmd(1.0), + [item], + {"x": 0.0, "y": 0.0, "w": 400.0, "h": 200.0}, + {"style": {"background": "transparent"}}, + ) + assert points == [ + ( + pytest.approx(5.5555555556), + (255, 255, 255, 255), + pytest.approx(1.3888888889), + (255, 127, 14, 255), + ) + ] + + +def test_explicit_line_handle_legend_keeps_gap_and_marker_state() -> None: + _fig, ax = plt.subplots() + (line,) = ax.plot( + [0, 1], + [0, 1], + "s--", + gapcolor="tab:pink", + color="tab:green", + ) + legend = ax.legend([line], ["proxy"]) + [item] = legend.spec()["items"] + + assert item["style"]["legend_gap_color"] == "#e377c2" + assert item["style"]["legend_marker"]["symbol"] == "square" From 04470a965ca2ff3833510291bbe914284d442a8e Mon Sep 17 00:00:00 2001 From: Farhan Ali Raza <62690310+FarhanAliRaza@users.noreply.github.com> Date: Mon, 27 Jul 2026 09:01:27 -0700 Subject: [PATCH 14/17] Honor Matplotlib axis-off chrome suppression --- python/xy/pyplot/_axes.py | 37 ++++++++++++---- python/xy/pyplot/_plot_types.py | 1 - tests/pyplot/test_axes_layout.py | 17 +++++++- .../pyplot/test_line_legend_gallery_compat.py | 43 +++++++++++++++++++ 4 files changed, 88 insertions(+), 10 deletions(-) diff --git a/python/xy/pyplot/_axes.py b/python/xy/pyplot/_axes.py index 84b23f22..10cd7e19 100644 --- a/python/xy/pyplot/_axes.py +++ b/python/xy/pyplot/_axes.py @@ -906,6 +906,10 @@ def __init__(self, figure: Any, *, y2_of: Optional["Axes"] = None) -> None: "y": {"labelleft": y2_of is None, "labelright": y2_of is not None}, } self._tick_lengths: dict[str, float] = {} + # Matplotlib's `axison` is an axes-wide draw-time gate. It does not + # mutate the individual Axis or Spine visibility settings, so turning + # it back on restores whatever those settings were before. + self.axison = True self._hidden_spines: set[str] = set() self._grid = bool(rcParams["axes.grid"]) self._grid_axes = {"x": self._grid, "y": self._grid} @@ -1201,6 +1205,7 @@ def clear(self) -> None: "y": {"labelleft": self._y2_of is None, "labelright": self._y2_of is not None}, } self._tick_lengths = {} + self.axison = True self._hidden_spines = set() self._title = None self._title_style = {} @@ -3838,8 +3843,7 @@ def axis( self.set_axis_off() elif arg == "on": self._materialize_axis_view_domains() - self.xaxis.set_visible(True) - self.yaxis.set_visible(True) + self.set_axis_on() elif arg in {"auto", "equal", "scaled", "image", "square"}: # All five Matplotlib modes begin with autoscale_view(tight=False), # whose limits include the configured x/y margins. @@ -4419,9 +4423,14 @@ def _set_box_aspect_ratio(self, ratio: float) -> None: self._invalidate() def set_axis_off(self) -> None: - """Hide both axes, like matplotlib's ``axis("off")``.""" - self.xaxis.set_visible(False) - self.yaxis.set_visible(False) + """Suppress every x/y-axis decoration without changing its settings.""" + self.axison = False + self._invalidate() + + def set_axis_on(self) -> None: + """Draw x/y-axis decorations using their existing visibility settings.""" + self.axison = True + self._invalidate() def inset_axes( self, bounds: tuple[float, float, float, float] | Sequence[float], **kwargs: Any @@ -6680,6 +6689,12 @@ def _build_chart(self, width: int, height: int) -> Any: empty_view = {axis for axis, dataless in axis_dataless.items() if dataless} x_props = {k: v for k, v in self._axis["x"].items() if v is not None} y_props = {k: v for k, v in self._axis["y"].items() if v is not None} + if not self.axison: + # `set_axis_off()` is a draw-time override in Matplotlib: suppress + # labels, ticks, grid lines and axis titles while leaving the + # authored Axis state intact for a later `set_axis_on()`. + x_props["tick_label_strategy"] = "none" + y_props["tick_label_strategy"] = "none" for axis, props in (("x", x_props), ("y", y_props)): if adjusted_aspect or axis in self._explicit_domains: continue @@ -6832,9 +6847,15 @@ def _build_chart(self, width: int, height: int) -> Any: ) if "handleheight" in self._legend_options: core_figure.legend_options["handleheight"] = self._legend_options["handleheight"] - core_figure.frame_sides = [ - side for side in ("left", "bottom", "top", "right") if side not in self._hidden_spines - ] + core_figure.frame_sides = ( + [] + if not self.axison + else [ + side + for side in ("left", "bottom", "top", "right") + if side not in self._hidden_spines + ] + ) if self._colorbar is not None: figure = core_figure options = dict(self._colorbar) diff --git a/python/xy/pyplot/_plot_types.py b/python/xy/pyplot/_plot_types.py index cd7a78fd..afe1d5ca 100644 --- a/python/xy/pyplot/_plot_types.py +++ b/python/xy/pyplot/_plot_types.py @@ -4353,7 +4353,6 @@ def add_text(distance: float, mid: float, value: str, offset: float) -> Text: self.set_aspect("equal", adjustable="box") if not frame: self.set_axis_off() - self._hidden_spines.update(("left", "bottom", "top", "right")) return PieContainer(wedges, source_values, bool(normalize), texts, autotexts) def pie_label( diff --git a/tests/pyplot/test_axes_layout.py b/tests/pyplot/test_axes_layout.py index 7abf7012..f05f33df 100644 --- a/tests/pyplot/test_axes_layout.py +++ b/tests/pyplot/test_axes_layout.py @@ -144,10 +144,25 @@ def test_axis_boolean_case_insensitive_and_keyword_forms() -> None: _fig, ax = plt.subplots() ax.plot([0.0, 2.0], [0.0, 1.0]) + ax.xaxis.set_visible(False) ax.axis(False) + assert ax.axison is False + # Matplotlib's axison flag overrides individual component visibility only + # while it is off; it does not overwrite that state. assert ax._axis_props("x")["tick_label_strategy"] == "none" + assert ax._axis_props("y").get("tick_label_strategy") is None + off_spec, _ = ax._build_chart(640, 480).figure().build_payload() + assert off_spec["frame_sides"] == [] + assert off_spec["x_axis"]["tick_label_strategy"] == "none" + assert off_spec["y_axis"]["tick_label_strategy"] == "none" ax.axis("ON") - assert ax._axis_props("x")["tick_label_strategy"] is None + assert ax.axison is True + assert ax._axis_props("x")["tick_label_strategy"] == "none" + assert ax._axis_props("y").get("tick_label_strategy") is None + on_spec, _ = ax._build_chart(640, 480).figure().build_payload() + assert on_spec["frame_sides"] == ["left", "bottom", "top", "right"] + assert on_spec["x_axis"]["tick_label_strategy"] == "none" + assert on_spec["y_axis"].get("tick_label_strategy") is None assert ax.axis(xmin=-3.0, ymax=4.0) == pytest.approx((-3.0, 2.1, -0.05, 4.0)) with pytest.raises(TypeError, match="unexpected keyword"): diff --git a/tests/pyplot/test_line_legend_gallery_compat.py b/tests/pyplot/test_line_legend_gallery_compat.py index 84d77f37..e8ffb1c3 100644 --- a/tests/pyplot/test_line_legend_gallery_compat.py +++ b/tests/pyplot/test_line_legend_gallery_compat.py @@ -207,6 +207,49 @@ def test_hidden_axis_keeps_explicit_matplotlib_spines_in_static_exports(): assert float(sample.min()) < dark_threshold +def test_axis_off_hides_barcode_chrome_in_static_exports(): + fig, ax = plt.subplots(figsize=(3, 2)) + ax.eventplot([[0.2, 0.5, 0.8]], orientation="horizontal") + ax.set_xlabel("hidden x label") + ax.set_ylabel("hidden y label") + ax.grid(True) + ax.set_axis_off() + + spec, _ = ax._build_chart(300, 200).figure().build_payload() + assert spec["frame_sides"] == [] + assert spec["x_axis"]["tick_label_strategy"] == "none" + assert spec["y_axis"]["tick_label_strategy"] == "none" + + output = BytesIO() + fig.savefig(output, format="svg") + root = ElementTree.fromstring(output.getvalue()) + texts = {"".join(element.itertext()) for element in root.iter() if element.tag.endswith("text")} + assert "hidden x label" not in texts + assert "hidden y label" not in texts + # The barcode event lines remain even though all axis chrome is gone. + assert sum(element.tag.endswith("line") for element in root.iter()) == 3 + + +def test_axis_off_hides_disabled_subplot_frame_in_static_exports(): + fig, axs = plt.subplots(1, 2, figsize=(6, 2)) + axs[0].plot([0, 1], [0, 1]) + axs[1].axis("off") + + hidden_spec, _ = axs[1]._build_chart(300, 200).figure().build_payload() + assert hidden_spec["frame_sides"] == [] + assert hidden_spec["x_axis"]["tick_label_strategy"] == "none" + assert hidden_spec["y_axis"]["tick_label_strategy"] == "none" + + output = BytesIO() + fig.savefig(output, format="svg") + root = ElementTree.fromstring(output.getvalue()) + nested = [element for element in root.iter() if element.tag.endswith("svg")] + assert len(nested) == 3 + disabled_panel = nested[-1] + assert not any(element.tag.endswith("line") for element in disabled_panel.iter()) + assert not any(element.tag.endswith("text") for element in disabled_panel.iter()) + + def test_bar_numpy_rgba_row_is_one_color_for_trace_and_legend(): _, ax = plt.subplots() rgba = np.array([0.9, 0.2, 0.1, 1.0]) From 411304d0a7b8623c62b4d074890c4e9cd83fdfbd Mon Sep 17 00:00:00 2001 From: Alek Petuskey Date: Mon, 27 Jul 2026 09:53:42 -0700 Subject: [PATCH 15/17] Fix legend gradient paint and formatting --- js/src/50_chartview.ts | 10 ++++++++-- python/xy/_paint.py | 4 +--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/js/src/50_chartview.ts b/js/src/50_chartview.ts index 0ce76428..34a5c893 100644 --- a/js/src/50_chartview.ts +++ b/js/src/50_chartview.ts @@ -2091,10 +2091,16 @@ export class ChartView { const hasMarkerSize = Number.isFinite(requestedMarkerSize) && requestedMarkerSize >= 0; const markerSize = hasMarkerSize ? requestedMarkerSize : 9; const symbol = String(marker?.symbol || "circle"); - const fillColor = safeCssPaint(this.root, marker?.color || defaultColor); + // The generated default can be an internal SVG url(...); sanitize only + // user-authored paints so the gradient reference remains intact. + const fillColor = marker?.color != null + ? safeCssPaint(this.root, marker.color) + : defaultColor; const hasStroke = marker?.stroke != null || marker?.stroke_width != null; const strokeColor = hasStroke - ? safeCssPaint(this.root, marker?.stroke || fillColor) + ? (marker?.stroke != null + ? safeCssPaint(this.root, marker.stroke) + : fillColor) : (wrapperPaint ? fillColor : "none"); const paths = { square: "M4.5 2.5h9v9h-9z", diamond: "M9 2l5 5-5 5-5-5z", diff --git a/python/xy/_paint.py b/python/xy/_paint.py index 021057ac..2fda5619 100644 --- a/python/xy/_paint.py +++ b/python/xy/_paint.py @@ -81,9 +81,7 @@ def vertex_key(point: tuple[float, float]) -> int: # Internal edges occur an even number of times. Degenerate triangles can # contribute the same edge twice, so ``count == 1`` incorrectly removes a # real boundary edge after a curve touches its baseline. - boundary = [ - edge for edge, count in edge_counts.items() if edge[0] != edge[1] and count % 2 - ] + boundary = [edge for edge, count in edge_counts.items() if edge[0] != edge[1] and count % 2] if len(boundary) < 3: return None adjacency: dict[int, set[int]] = {} From 61e5b2fb851f7102819dbc200e0158b689b1eb3a Mon Sep 17 00:00:00 2001 From: Alek Petuskey Date: Mon, 27 Jul 2026 10:23:19 -0700 Subject: [PATCH 16/17] Add artist state gallery compatibility --- python/xy/pyplot/__init__.py | 8 +- python/xy/pyplot/_artists.py | 67 ++++++++++ python/xy/pyplot/_axes.py | 65 +++++++--- python/xy/pyplot/_mplfig.py | 3 +- tests/pyplot/test_artist_state_gate_compat.py | 116 ++++++++++++++++++ 5 files changed, 238 insertions(+), 21 deletions(-) create mode 100644 tests/pyplot/test_artist_state_gate_compat.py diff --git a/python/xy/pyplot/__init__.py b/python/xy/pyplot/__init__.py index 98e27250..23db46a6 100644 --- a/python/xy/pyplot/__init__.py +++ b/python/xy/pyplot/__init__.py @@ -866,9 +866,9 @@ def step( def bar( - x: ArrayLike, + x: float | ArrayLike, height: float | ArrayLike, - width: float = 0.8, + width: float | ArrayLike = 0.8, bottom: float | ArrayLike | None = None, *, color: ColorsLike | None = None, @@ -917,9 +917,9 @@ def bar( def barh( - y: ArrayLike, + y: float | ArrayLike, width: float | ArrayLike, - height: float = 0.8, + height: float | ArrayLike = 0.8, left: float | ArrayLike | None = None, *, color: ColorsLike | None = None, diff --git a/python/xy/pyplot/_artists.py b/python/xy/pyplot/_artists.py index adf17bf5..442d9921 100644 --- a/python/xy/pyplot/_artists.py +++ b/python/xy/pyplot/_artists.py @@ -20,6 +20,21 @@ from ._transforms import Bbox, IdentityTransform +class _PatchFacade: + """Stable facecolor facade for the figure and axes background patches.""" + + def __init__(self, owner: Any) -> None: + self._owner = owner + + def set_facecolor(self, color: Any) -> None: + self._owner.set_facecolor(color) + + set_fc = set_facecolor + + def get_facecolor(self) -> Any: + return self._owner.get_facecolor() + + def unit_converted_values(values: Any) -> Any: """Datetime-like values in the engine's converted unit — f64 ms since epoch (columns.py); every other dtype is already its own converted form.""" @@ -1173,6 +1188,41 @@ def __init__(self, entry: dict[str, Any]) -> None: self._entry = entry +class _LegendFrame: + """Mutable facade over the frame options owned by one shim legend.""" + + def __init__(self, legend: "Legend") -> None: + self._legend = legend + + def set_facecolor(self, color: Any) -> None: + self._legend._set_frame_option("facecolor", color) + + set_fc = set_facecolor + + def get_facecolor(self) -> Any: + return self._legend._frame_style().get("background") + + def set_edgecolor(self, color: Any) -> None: + self._legend._set_frame_option("edgecolor", color) + + set_ec = set_edgecolor + + def get_edgecolor(self) -> Any: + return self._legend._frame_style().get("borderColor") + + def set_alpha(self, alpha: float | None) -> None: + self._legend._set_frame_option("framealpha", alpha) + + def get_alpha(self) -> Any: + return self._legend._frame_style().get("--xy-legend-frame-alpha") + + def set_visible(self, visible: bool) -> None: + self._legend._set_frame_option("frameon", bool(visible)) + + def get_visible(self) -> bool: + return bool(self._legend._kwargs.get("frameon", rcParams["legend.frameon"])) + + def _contour_legend_colors(entry: dict[str, Any], count: int) -> list[str]: """Resolve a contour's scalar/listed color channel to CSS proxy colors.""" if count <= 0: @@ -1471,6 +1521,7 @@ def __init__( self._kwargs = dict(kwargs) if loc is not None: self._kwargs.setdefault("loc", loc) + self._frame = _LegendFrame(self) self._attach(parent) def _attach(self, parent: Any) -> None: @@ -1488,6 +1539,22 @@ def _attach(self, parent: Any) -> None: for entry, label, marker_entry in self._pairs ] + def _frame_style(self) -> dict[str, Any]: + return self._options.get("style", {}) + + def _set_frame_option(self, name: str, value: Any) -> None: + self._kwargs[name] = value + self._attach(self._parent) + host = self._parent._y2_of or self._parent + if host._legend_handle is self: + host._legend_options = dict(self._options) + if host._legend_items is not None: + host._legend_items = list(self._items) + host._invalidate() + + def get_frame(self) -> _LegendFrame: + return self._frame + def spec(self) -> dict[str, Any]: """The option dict plus explicit items, ready for the render payload.""" options = dict(self._options) diff --git a/python/xy/pyplot/_axes.py b/python/xy/pyplot/_axes.py index 10cd7e19..8832a18a 100644 --- a/python/xy/pyplot/_axes.py +++ b/python/xy/pyplot/_axes.py @@ -34,6 +34,7 @@ PathCollection, PolyCollection, Text, + _PatchFacade, unit_converted_values, ) from ._colors import ( @@ -778,6 +779,11 @@ def __getitem__(self, key: Any) -> "_SpineProxy": raise KeyError(next(iter(unknown))) return _SpineProxy(self.axes, names) + def __getattr__(self, name: str) -> "_SpineProxy": + if name in {"left", "bottom", "top", "right"}: + return self[name] + raise AttributeError(name) + def values(self) -> list["_SpineProxy"]: return [_SpineProxy(self.axes, (name,)) for name in self.names] @@ -798,6 +804,9 @@ def set_visible(self, visible: bool) -> None: self.axes._hidden_spines.add(name) self.axes._invalidate() + def get_visible(self) -> bool: + return all(name not in self.axes._hidden_spines for name in self.names) + def _cached_theme(grid: bool, tokens: dict[str, Any], style: dict[str, Any]) -> Any: key = ("theme", grid, tuple(sorted(tokens.items())), tuple(sorted(style.items()))) @@ -921,6 +930,7 @@ def __init__(self, figure: Any, *, y2_of: Optional["Axes"] = None) -> None: self._patch_cycle = 0 self._prop_cycle: Optional[list[str]] = None self._load_rc_chrome() + self.patch = _PatchFacade(self) self._chart: Any = None self._twin: Optional[Axes] = None self._y2_of = y2_of # when set, our marks target axis id "y2" on the host @@ -1764,7 +1774,7 @@ def bar( self, x: float | ArrayLike, height: float | ArrayLike, - width: float = 0.8, + width: float | ArrayLike = 0.8, bottom: float | ArrayLike | None = None, **kwargs: Any, ) -> BarContainer: @@ -1784,7 +1794,7 @@ def barh( self, y: float | ArrayLike, width: float | ArrayLike, - height: float = 0.8, + height: float | ArrayLike = 0.8, left: float | ArrayLike | None = None, **kwargs: Any, ) -> BarContainer: @@ -1833,6 +1843,26 @@ def materialize_iterable(value: Any) -> Any: vals = materialize_iterable(vals) thickness = materialize_iterable(thickness) base = materialize_iterable(base) + thickness_is_scalar = np.asarray(thickness).ndim == 0 + base_is_none = base is None + base_is_scalar = base_is_none or np.asarray(base).ndim == 0 + try: + cats, vals, broadcast_thickness, broadcast_base = np.broadcast_arrays( + np.atleast_1d(cats), + np.atleast_1d(vals), + np.atleast_1d(thickness), + np.atleast_1d(0.0 if base_is_none else base), + subok=True, + ) + except ValueError: + raise ValueError( + "shape mismatch: bar positional inputs cannot be broadcast to a single shape" + ) from None + if cats.ndim != 1: + raise ValueError("bar positional inputs must be scalar or 1-D") + thickness = thickness if thickness_is_scalar else broadcast_thickness + if not base_is_none: + base = base if base_is_scalar else np.array(broadcast_base, copy=True) cat_array = np.asarray(cats) if cat_array.dtype.kind == "U" and cat_array.dtype.isnative: # _plain_text only rewrites labels containing TeX markers; a @@ -2453,20 +2483,23 @@ def fill_between( ) ) if not entries: - entries.append( - self._add( - "area", - { - "x": [0.0, 0.0], - "y": [np.nan, np.nan], - "kwargs": { - "base": [np.nan, np.nan], - "color": resolved_color, - "opacity": 0.0, - }, - }, - ) - ) + # Matplotlib still returns a collection handle, but there is no + # polygon to retain when no pair of adjacent points is selected. + # Keep that logical empty artist out of the render-entry list + # instead of exporting an all-NaN transparent area. + empty = { + "kind": "area", + "y_axis": "y2" if self._y2_of is not None else "y", + "x": np.empty(0, dtype=np.float64), + "y": np.empty(0, dtype=np.float64), + "kwargs": { + "base": np.empty(0, dtype=np.float64), + "color": resolved_color, + "opacity": float(alpha) if alpha is not None else 1.0, + "name": str(label) if label is not None else None, + }, + } + return PolyCollection(self, empty) return PolyCollection(self, entries[0]) def imshow(self, z: ArrayLike, cmap: Any = None, **kwargs: Any) -> AxesImage: diff --git a/python/xy/pyplot/_mplfig.py b/python/xy/pyplot/_mplfig.py index 0d64387e..b75a2056 100644 --- a/python/xy/pyplot/_mplfig.py +++ b/python/xy/pyplot/_mplfig.py @@ -14,7 +14,7 @@ import numpy as np -from ._artists import Text +from ._artists import Text, _PatchFacade from ._axes import _DEFAULT_AXES_RECT, Axes, _plain_text from ._colors import resolve_color from ._rc import rc_figsize_px, rcParams @@ -104,6 +104,7 @@ def __init__( # short-circuits) assumes a string. self._facecolor = (resolve_color(facecolor) if facecolor is not None else None) or "white" self._edgecolor = "white" + self.patch = _PatchFacade(self) self._suptitle: Optional[str] = None self._suptitle_style: dict[str, Any] = {} self._supxlabel: Optional[str] = None diff --git a/tests/pyplot/test_artist_state_gate_compat.py b/tests/pyplot/test_artist_state_gate_compat.py new file mode 100644 index 00000000..0d9996fc --- /dev/null +++ b/tests/pyplot/test_artist_state_gate_compat.py @@ -0,0 +1,116 @@ +from __future__ import annotations + +import numpy as np +import pytest + +import xy.pyplot as plt + + +@pytest.fixture(autouse=True) +def _clean_pyplot_state(): + plt.close("all") + yield + plt.close("all") + + +def test_bar_and_barh_broadcast_scalar_and_vector_positional_inputs() -> None: + _fig, ax = plt.subplots() + + vertical = ax.bar(2.0, 3.0, width=[0.2, 0.4], bottom=[1.0, 2.0]) + np.testing.assert_array_equal(vertical._entry["x"], [2.0, 2.0]) + np.testing.assert_array_equal(vertical._entry["y"], [3.0, 3.0]) + np.testing.assert_array_equal(vertical._entry["kwargs"]["width"], [0.2, 0.4]) + np.testing.assert_array_equal(vertical._entry["kwargs"]["base"], [1.0, 2.0]) + assert len(vertical) == 2 + + horizontal = ax.barh(["A", "B", "C"], 5.0, height=0.5, left=[0.0, 1.0, 2.0]) + np.testing.assert_array_equal(horizontal._entry["x"], ["A", "B", "C"]) + np.testing.assert_array_equal(horizontal._entry["y"], [5.0, 5.0, 5.0]) + assert horizontal._entry["kwargs"]["width"] == 0.5 + np.testing.assert_array_equal(horizontal._entry["kwargs"]["base"], [0.0, 1.0, 2.0]) + assert len(horizontal) == 3 + + +def test_bar_rejects_positional_inputs_that_cannot_broadcast() -> None: + _fig, ax = plt.subplots() + + with pytest.raises(ValueError, match="shape mismatch"): + ax.bar([0.0, 1.0], [1.0, 2.0, 3.0]) + + +def test_figure_and_axes_patch_facecolors_mutate_their_host_state() -> None: + fig, ax = plt.subplots() + + assert fig.patch is fig.patch + assert ax.patch is ax.patch + fig.patch.set_facecolor("#fffacd") + ax.patch.set_fc("#778899") + + assert fig.patch.get_facecolor() == "#fffacd" + assert fig.get_facecolor() == "#fffacd" + assert ax.patch.get_facecolor() == "#778899" + assert ax.get_facecolor() == "#778899" + + +def test_legend_frame_mutations_stay_synchronized_with_host_options() -> None: + _fig, ax = plt.subplots() + ax.plot([0.0, 1.0], [1.0, 2.0], label="line") + legend = ax.legend(facecolor="white", edgecolor="black", framealpha=0.8) + + frame = legend.get_frame() + assert frame is legend.get_frame() + frame.set_facecolor("#123456") + frame.set_edgecolor("#abcdef") + frame.set_alpha(0.35) + + style = ax._legend_options["style"] + assert style["background"] == "#123456" + assert style["borderColor"] == "#abcdef" + assert style["--xy-legend-frame-alpha"] == 0.35 + assert legend.spec()["style"] == style + assert frame.get_facecolor() == "#123456" + assert frame.get_edgecolor() == "#abcdef" + assert frame.get_alpha() == 0.35 + + frame.set_visible(False) + assert frame.get_visible() is False + assert ax._legend_options["style"]["background"] == "transparent" + assert ax._legend_options["style"]["borderColor"] == "transparent" + frame.set_visible(True) + assert frame.get_visible() is True + assert ax._legend_options["style"]["background"] == "#123456" + assert ax._legend_options["style"]["borderColor"] == "#abcdef" + + +def test_spines_support_matplotlib_attribute_visibility_access() -> None: + _fig, ax = plt.subplots() + + ax.spines.top.set_visible(False) + ax.spines.right.set_visible(False) + + assert ax.spines.top.get_visible() is False + assert ax.spines.right.get_visible() is False + assert ax.spines.left.get_visible() is True + assert ax._hidden_spines == {"top", "right"} + + +def test_fill_between_with_no_adjacent_selected_points_has_no_render_entry() -> None: + _fig, ax = plt.subplots() + ax.plot([0.0, 1.0], [0.0, 1.0]) + existing_entries = list(ax._entries) + + collection = ax.fill_between( + [0.0, 1.0, 2.0], + [1.0, 2.0, 3.0], + where=[False, True, False], + label="empty", + ) + + assert len(ax._entries) == 1 + assert ax._entries[0] is existing_entries[0] + assert collection in ax.collections + assert collection._entry["kind"] == "area" + assert np.asarray(collection._entry["x"]).size == 0 + assert np.asarray(collection._entry["y"]).size == 0 + collection.remove() + assert collection not in ax.collections From 37ff55730518592c074da647bdd76d1e816fe491 Mon Sep 17 00:00:00 2001 From: Alek Petuskey Date: Mon, 27 Jul 2026 11:44:01 -0700 Subject: [PATCH 17/17] Drop compatibility ledger edits from gallery PR --- spec/matplotlib/compat-changelog.md | 57 +++++++++++++---------------- spec/matplotlib/compat.md | 32 ++++++++-------- spec/matplotlib/shim-todo.md | 18 ++++++--- 3 files changed, 53 insertions(+), 54 deletions(-) diff --git a/spec/matplotlib/compat-changelog.md b/spec/matplotlib/compat-changelog.md index e1d868f3..94cb1230 100644 --- a/spec/matplotlib/compat-changelog.md +++ b/spec/matplotlib/compat-changelog.md @@ -4,38 +4,31 @@ This changelog records changes to the upstream compatibility target and to the meaning of xy's compatibility levels. It complements the project changelog, which covers user-visible releases across the whole package. -## Legend handle fidelity — 2026-07-27 - -- Patch handles retain independent face and edge paint, so an unfilled bar - with a visible outline no longer becomes an invisible legend swatch. -- Dashed `Line2D` handles retain their alternating `gapcolor` beneath the - foreground dash pattern. -- Line handles retain their centered marker shape, size, face, and edge paint - for clean, masked, and NaN-broken paths. - -## Style-sheet gallery source compatibility — 2026-07-27 - -- The bounded `rcParams["axes.prop_cycle"]` proxy now reports the installed - color count through `len()`, allowing Matplotlib's exact `dark_background` - gallery source to derive its shifted-line count after applying the style. - -## PDSH state and image ownership — 2026-07-26 - -- Split subplot creation from activation: repeated same-spec - `Figure.add_subplot()` calls now create overlay axes, while `plt.subplot()` - reuses the first matching axes and no-argument `plt.axes()` creates a fresh - axes. Reused subplots process `sharex=`/`sharey=` through the same - axis-property sharing path as newly created subplots, and mosaic-returned - axes are claimed before later `Figure.add_subplot()` calls. This restores - the state boundaries used by PDSH 04.01 and 04.10. -- Static PNG/SVG composition rebuilds cached panels when a fresh axes changes - the figure to or from overlapping absolute placement. Same-position axes - therefore share one frame: the later opaque axes patch covers the older - plot, while their ticks and labels no longer drift into duplicated chrome. -- `imshow()` now copies both its logical source and prepared render arrays. - `AxesImage.set_data()` updates `get_array()` and rebuilds render data through - the initial normalization/origin/resampling path, so later mutation of either - caller array cannot rewrite an existing image. +## Box and violin default geometry — 2026-07-26 (Matplotlib 3.11.1 reference) + +- `xy.pyplot.boxplot` no longer routes its default call through the native + opinionated box mark. It now draws Matplotlib's unfilled line geometry and + returns one box, median, and flier handle plus two whisker and cap handles per + group. Fliers stay centered on their group even when several groups are + present, and empty groups of fliers still have the expected handle. +- `xy.pyplot.violinplot` now uses the same Gaussian-KDE path for its default + Scott bandwidth as it does for explicit Scott, Silverman, scalar, and + callable bandwidths. It returns one body per group, with triangle joins + marked as a single fill so browser, PNG, and SVG output suppress internal + seams. +- The public composition API keeps its independent native `box` and `violin` + marks and their opinionated styling; this compatibility correction is + contained inside `xy.pyplot`. + +## Histogram and spectral numeric semantics — 2026-07-26 (Matplotlib 3.11.1 reference) + +- `hist(density=True, stacked=True)` now bins raw per-dataset mass, stacks it, + and normalizes the combined top envelope once. Unequal bin widths, weights, + and both cumulative directions match Matplotlib 3.11.1 numeric outputs. +- The native Welch paths behind `psd`, `csd`, `cohere`, and `specgram` no + longer subtract each segment mean by default. Their omitted/`None` + `detrend` behavior is Matplotlib's `detrend_none`; unsupported explicit + detrending modes continue to fail loudly at the pyplot boundary. ## Vector-field gallery corrections — 2026-07-24 diff --git a/spec/matplotlib/compat.md b/spec/matplotlib/compat.md index 9e2384e1..82745b09 100644 --- a/spec/matplotlib/compat.md +++ b/spec/matplotlib/compat.md @@ -50,21 +50,22 @@ dependency-free `triangles=` shorthand into Matplotlib's equivalent | matplotlib | notes | |---|---| -| `plt.plot` / `ax.plot` | format strings (`'r--o'`), multiple series per call, implicit x, `label=`, `lw=`, `ls=`, `alpha=`, marker face/edge styling, directional `^`/`v`/`<`/`>` triangles and distinct `+`/`x` glyphs, `markevery`, and dependency-free affine *data* transforms (`Affine2D + ax.transData`). Legend handles retain the line's dash/gapcolor and centered marker state even when masked or NaN data materializes as independent segments; axes/figure-fraction transforms on data artists, partial fill styles, and cap/join policies fail loudly | -| `scatter(x, y, s=, c=, cmap=, vmin=, vmax=, alpha=, marker=, edgecolors=, plotnonfinite=)` | `s` (pt², area) maps to pixel diameter; numeric 1-D `c` remains a colormap encoding, while `N×3`/`N×4` face and edge colors, alpha arrays, sizes, and linewidth arrays stay in one collection. Explicit alpha replaces intrinsic RGBA alpha, matching Matplotlib. In addition to the named marker table, bounded regular `(sides, style[, angle])` tuples, finite custom vertex paths (up to 64 vertices), and single-glyph mathtext markers render distinctly in browser, SVG, PNG, and legends. Longer/multi-glyph authored paths and custom norms fail loudly | -| `bar`, `barh`, `grouped_bar`, `bar_label` | string categories, stacking bases, per-bar face/edge color-alpha pairs and linewidths, plus iterable/indexable `BarContainer.patches` views whose setters mutate the parent batched trace. Legend patch handles retain independent face, edge, and edge-width paint, including unfilled outlined bars | -| `hist(bins=, range=, density=, cumulative=, weights=, orientation=, stacked=)` | Returns computed counts/edges; bar, step, and stepfilled families render in both vertical and horizontal orientations | -| `hist2d`, `hexbin`, `ecdf` | 2D uniform binning uses the native Rust kernel; hexbin uses Matplotlib's two-offset-grid nearest-center assignment and six-triangle data-space cells, supports `C`, arbitrary scalar reducers, and `mincnt`, and retains only the bounded lattice rather than source points. `hist2d` view limits are the outer bin edges with no margin, matching Matplotlib's sticky mesh edges; non-uniform bins delegate to `pcolormesh` and autoscale through the quad-mesh path instead. `ecdf` carries the ordinary margin on the sample axis and is sticky at 0 and 1 on the cumulative axis | -| `boxplot`, `violinplot`, `bxp`, `violin`, `errorbar` | Boxplots support notches, bootstrap/user confidence intervals, median overrides (drawn median only; notch CIs stay data-derived like Matplotlib), percentile/custom whiskers, cap widths, `sym`, and component colors/widths/alpha — dashed component linestyles fail loudly. Violins support Scott/Silverman/scalar/callable Gaussian-KDE bandwidths, quantiles, and low/high sides; the default (bw_method omitted) uses the native histogram violin mark, whose shape differs from the explicit KDE path. `boxplot` autoscales its value axis over the Tukey whiskers plus, when `showfliers` is on, the flier points. Its default category positions are 1-based and `manage_ticks=True` reserves half a unit around the outer positions, matching Matplotlib | -| `fill_between(x, y1, y2, where=, step=)` / `fill_betweenx` | Masks are split into finite contiguous polygons; step geometry is expanded exactly. Unspecified fill colors consume an independent patch cycle, so preceding line plots do not change the first fill from `C0` | +| `plt.plot` / `ax.plot` | format strings (`'r--o'`), multiple series per call, implicit x, `label=`, `lw=`, `ls=`, `alpha=`, marker face/edge styling, directional `^`/`v`/`<`/`>` triangles and distinct `+`/`x` glyphs, `markevery`, and dependency-free affine *data* transforms (`Affine2D + ax.transData`); axes/figure-fraction transforms on data artists, partial fill styles, and cap/join policies fail loudly | +| `scatter(x, y, s=, c=, cmap=, vmin=, vmax=, alpha=, marker=, edgecolors=, plotnonfinite=)` | `s` (pt², area) maps to pixel diameter; numeric 1-D `c` remains a colormap encoding, while `N×3`/`N×4` face and edge colors, alpha arrays, sizes, and linewidth arrays stay in one collection. Explicit alpha replaces intrinsic RGBA alpha, matching Matplotlib; custom norms/marker paths fail loudly | +| `bar`, `barh`, `grouped_bar`, `bar_label` | string categories, stacking bases, per-bar face/edge color-alpha pairs and linewidths, plus iterable/indexable `BarContainer.patches` views whose setters mutate the parent batched trace | +| `hist(bins=, range=, density=, cumulative=, weights=, orientation=, stacked=)` | Returns computed counts/edges; stacked density normalizes the combined weighted area once (including unequal bins and either cumulative direction), matching Matplotlib 3.11; bar, step, and stepfilled families render in both vertical and horizontal orientations; unfilled step outlines connect their top envelope to zero or the previous stack at both endpoints | +| `hist2d`, `hexbin`, `ecdf` | 2D uniform binning uses the native Rust kernel. `hist2d` delegates rendering to the pseudocolor-mesh path for both uniform and non-uniform bins, supports linear and logarithmic normalization, defaults to fully opaque cells, and retains the original count domain for logarithmic mappables. Its view limits are the outer bin edges with no margin, matching Matplotlib's sticky mesh edges. Arbitrary custom normalization and `colorizer` remain unsupported. Hexbin uses Matplotlib's two-offset-grid nearest-center assignment and six-triangle data-space cells, supports `C`, arbitrary scalar reducers, and `mincnt`, and retains only the bounded lattice rather than source points. `ecdf` carries the ordinary margin on the sample axis and is sticky at 0 and 1 on the cumulative axis | +| `boxplot`, `violinplot`, `bxp`, `violin`, `errorbar` | Boxplots support notches, bootstrap/user confidence intervals, median overrides (drawn median only; notch CIs stay data-derived like Matplotlib), percentile/custom whiskers, cap widths, `sym`, dashed line-component styles, and component colors/widths/alpha. Default boxes are unfilled outlines and return Matplotlib-shaped per-group component handles (two whiskers/caps and one box/median/flier handle per group). `patch_artist=True` emits mutable filled polygon boxes; statistics labels become category tick labels, while scalar or per-box legend labels bind to boxes for patch plots and medians otherwise. Violins use Gaussian KDE for the default Scott bandwidth and explicit Scott/Silverman/scalar/callable bandwidths, return one seam-free mutable body per group, cycle face and line color sequences, preserve color-alpha pairs, and support quantiles and low/high sides. `boxplot` autoscales its value axis over the Tukey whiskers plus, when `showfliers` is on, the flier points. Its default category positions are 1-based and `manage_ticks=True` reserves half a unit around the outer positions, matching Matplotlib | +| `fill_between(x, y1, y2, where=, step=)` / `fill_betweenx` | Masks are split into finite contiguous polygons; step geometry is expanded exactly | | `stackplot` | All four baselines are computed by the native stacked-bounds kernel | -| `imshow` / `pcolormesh` (`cmap=`, `vmin=`/`vmax=`, `origin=`) | `imshow` defaults to `rcParams['image.origin']`; nearest stays cell-exact, while named smoothing modes use dependency-free per-kernel approximations over a bounded 512–1024 px intermediate for both scalar and RGB(A) data. Images own independent logical-source and render arrays, and `AxesImage.set_data()` rebuilds both through the same normalization, origin, and resampling path as initial creation. Filter choice and intermediate size do not yet depend on final display resolution, and explicit `interpolation="auto"` remains unsupported. Unsupported stages/transforms fail loudly. Uniform meshes retain the texture fast path; nonuniform and curvilinear grids use native quad-to-triangle expansion. Both hug their outer cell edge with no margin, as Matplotlib's sticky image/mesh edges do | +| `psd`, `csd`, `cohere`, `specgram` | Native real-valued Hann-windowed Welch spectra use Matplotlib 3.11's default `detrend_none` semantics. Callable windows/detrending, independent `pad_to`, explicit sides/frequency scaling, and complex/two-sided inputs remain unsupported and fail loudly instead of silently changing the signal; completing these is tracked acceptance debt for `statistics/psd_demo.py` | +| `imshow` / `pcolormesh` (`cmap=`, `vmin=`/`vmax=`, `origin=`) | `imshow` defaults to `rcParams['image.origin']`; nearest stays cell-exact, while named smoothing modes use dependency-free per-kernel approximations over a bounded 512–1024 px intermediate for both scalar and RGB(A) data. Filter choice and intermediate size do not yet depend on final display resolution, and explicit `interpolation="auto"` remains unsupported. Unsupported stages/transforms fail loudly. Uniform meshes retain the texture fast path; nonuniform and curvilinear grids use native quad-to-triangle expansion. Both hug their outer cell edge with no margin, as Matplotlib's sticky image/mesh edges do | | `step`, `stairs`, `stem`, `eventplot` | Compact step/stem/segment marks; no Python-side vertex expansion | | `contour` / `contourf` / `clabel` | Native marching squares over rectilinear grids; warped grids route through native Delaunay/marching-triangle kernels; automatic labels repeat at bounded, separated positions along each level (line knockout for `inline=True` remains a visual approximation) | | `quiver`, `barbs`, `streamplot` | Quiver supports Matplotlib's width-unit vocabulary independently from length scaling. Barbs use fixed-length staffs and Matplotlib's flag/full/half decomposition, including increments, rounding, empty glyphs, colors, sizes, flipping, and pivots. Streamplot uses a dependency-free adaptive Heun integrator with occupancy-aware seeding; `start_points`, `integration_direction`, `broken_streamlines`, integration step/error scales, array widths/colors, and `num_arrows` are honored | | `tripcolor`, `triplot`, `tricontour`, `tricontourf` | Explicit topology or native dependency-free Delaunay triangulation; indexed geometry and isolines stay in Rust | | `pie` / `pie_label` | Native pie/donut tessellation and the Matplotlib 3.11 `PieContainer` (`values`, `fracs`, grouped text labels), including dtype-preserving value formats, radial label rotation/alignment, and common text properties | -| `axhline` / `axvline` / `axhspan` / `axvspan`, `text`, `annotate`, `table` | Fractional span bounds plus data/axes/figure text coordinates are supported; `axhline`/`axvline` also retain direct endpoint `marker`/`ms`/`mfc`/`mec`/`mew` styling. `annotate(arrowprops=)` draws real arrows in every output: offset-point text becomes an engine callout (arrow pinned from label to point across zoom), data-coordinate text an arrow annotation; date-string coordinates convert on datetime axes. Arrowstyles map to head/tail shapes (`->` open V, `-\|>` filled, `\|-\|`/brackets bar caps, `fancy`/`simple`/`wedge` filled tapered shafts sized by the text's mutation scale) and `connectionstyle` arc3/angle3/angle become quadratic curves (corner rounding approximated); `alpha` dims the arrow only. `bbox=` becomes label box styles (fill/edge/round corners/`pad`) in browser and static exports; its `alpha` is the *patch* alpha and dims face and edge together, as Matplotlib's element `opacity` does, and `boxstyle="round"`/`round4` corners are rounded in SVG (`rx`) and native PNG as well as in the browser. An arrow-less `text`/`annotate` label is painted with `rcParams["text.color"]` in all three renderers rather than each renderer's own annotation-label default. Text is unclipped like Matplotlib (`clip_on=False`), and axes-fraction text right of the axes box (x > 1, e.g. seaborn-style row titles) reserves right margin in every exporter. `rotation=90/270` renders vertical text in browser, PNG, and SVG with Matplotlib's rotate-then-align box semantics; other angles rotate in browser and SVG output only (native PNG draws them horizontally) | +| `axhline` / `axvline` / `axhspan` / `axvspan`, `text`, `annotate`, `table` | Fractional span bounds plus data/axes/figure text coordinates are supported. `annotate(arrowprops=)` draws real arrows in every output: offset-point text becomes an engine callout (arrow pinned from label to point across zoom), data-coordinate text an arrow annotation; date-string coordinates convert on datetime axes. Arrowstyles map to head/tail shapes (`->` open V, `-\|>` filled, `\|-\|`/brackets bar caps, `fancy`/`simple`/`wedge` filled tapered shafts sized by the text's mutation scale) and `connectionstyle` arc3/angle3/angle become quadratic curves (corner rounding approximated); `alpha` dims the arrow only. `bbox=` becomes label box styles (fill/edge/round corners/`pad`) in browser and static exports; its `alpha` is the *patch* alpha and dims face and edge together, as Matplotlib's element `opacity` does, and `boxstyle="round"`/`round4` corners are rounded in SVG (`rx`) and native PNG as well as in the browser. An arrow-less `text`/`annotate` label is painted with `rcParams["text.color"]` in all three renderers rather than each renderer's own annotation-label default. Text is unclipped like Matplotlib (`clip_on=False`), and axes-fraction text right of the axes box (x > 1, e.g. seaborn-style row titles) reserves right margin in every exporter. `rotation=90/270` renders vertical text in browser, PNG, and SVG with Matplotlib's rotate-then-align box semantics; other angles rotate in browser and SVG output only (native PNG draws them horizontally) | | `from xy.pyplot import FacetGrid` (seaborn-shaped) | Row/column small multiples with seaborn's `map` contract (subset → activate panel → call the pyplot function), shared domains, edge-only axis labels, top-row column titles, and `margin_titles=True` rotated row titles. `hue=`/`palette=`, `col_wrap=`, `map_dataframe`, and `add_legend` fail loudly | | `xlabel` / `ylabel` / `title` / `suptitle` | Suptitles are retained in HTML and multi-panel PNG/SVG. `ylabel` sits clear of the y tick labels in every renderer: the left gutter is reserved from the measured advances of the tick labels and the rotated title rather than from a fixed constant, leaving Matplotlib's `0.4 em` (5.6 px at the 10 pt/100 dpi default) title-to-tick gap — see *Measured left gutter and the rotated y-axis title* in `spec/api/styling.md` for the formula and its two documented asymmetries | | `legend()` | `loc`, columns, title/font size/colors, frame styling, `borderpad`, `labelspacing`, `borderaxespad`, `fancybox`, `framealpha`, and `shadow` are retained across browser and static output. `loc='best'` scores the measured displayed legend box in Matplotlib location-code order using path vertices/crossings, collection offsets, and bar-rectangle overlaps. It resolves before the wire; pyplot rejects misspelled Matplotlib locations without narrowing core `xy.legend()`'s independent location vocabulary. Text-box scoring and bounded long-path sampling are documented in `spec/api/styling.md` § Legend placement | @@ -77,8 +78,8 @@ dependency-free `triangles=` shorthand into Matplotlib's equivalent | `twinx()`, `secondary_xaxis()`, `secondary_yaxis()` | second data axes and linked tick-only secondary axes with callable forward/inverse conversions. Secondary-axis ticks are evenly spaced conversions of the primary domain (not Matplotlib's secondary-unit locators) and currently reach the interactive HTML client only — PNG/SVG export does not draw them yet | | `fig, ax = plt.subplots()`; `plt.subplots(n, m, figsize=, dpi=, squeeze=, sharex=, sharey=)` | Grid renders as CSS-grid HTML and stitched PNG/SVG; shared axes use common domains and live linked pan/zoom. `Figure.subplots_adjust(left=, right=, top=, bottom=, wspace=, hspace=)` moves the SubplotParams frame: the grid resolves to explicit figure rectangles and every exporter (HTML, PNG, SVG) positions panels at those rectangles | | `Axes.get_position(original=False)` and the rendered axes frame | Supported subplot and free-form axes report their live figure rectangle and render on it. `original=True` returns the allocated rectangle before an adjustable-box aspect correction; the default applies the correction and its anchor, matching Matplotlib. Grid cells resolve under the live SubplotParams (`wspace`/`hspace`, width/height ratios), while explicit `add_axes`/`set_position` rectangles take precedence until a later layout adjustment. Titles, top-side x axes (`matshow`), and secondary-y gutters grow the surrounding allocation instead of moving the frame. **Known exception:** an axes carrying a colorbar keeps label-aware margins because xy and Matplotlib currently reserve the colorbar strip through different layout paths | -| `fig.add_subplot(2, 2, 1)` / `add_subplot(221)` | `Figure.add_subplot` creates a new axes even when the figure already contains the same spec; stateful `plt.subplot` instead activates the first matching axes in figure order. A no-argument `plt.axes()` creates a fresh default-position axes. Same-position axes share one static-export frame and stack in figure order, so the later opaque axes patch covers the older plot without offsetting duplicate tick/label chrome | -| `plt.subplot_mosaic([['A','B'],['C','C']])` / `Figure.subplot_mosaic` | Row sequences (a list of equal-length label strings, or nested label lists) resolve to a uniform grid; each distinct label, in first-appearance order, binds to the next cell, returning claimed `(fig, {label: Axes})` entries that a later `Figure.add_subplot` does not hijack, with `figsize=`/`dpi=` sizing the figure. Repeated labels do not span and `'.'` does not blank a cell — the grid keeps one axes per cell — and Matplotlib's single-string forms (`'AB;CC'`, newline-separated blocks) are not parsed into rows | +| `fig.add_subplot(2, 2, 1)` / `add_subplot(221)` | | +| `plt.subplot_mosaic([['A','B'],['C','C']])` / `Figure.subplot_mosaic` | Row sequences (a list of equal-length label strings, or nested label lists) resolve to a uniform grid; each distinct label, in first-appearance order, binds to the next cell, returning `(fig, {label: Axes})` with `figsize=`/`dpi=` sizing the figure. Repeated labels do not span and `'.'` does not blank a cell — the grid keeps one axes per cell — and Matplotlib's single-string forms (`'AB;CC'`, newline-separated blocks) are not parsed into rows | | `gca` / `gcf` / `sca` / `figure(num)` / `close(...)` | matplotlib's implicit-state semantics | | `savefig('x.png' / '.svg' / '.html', dpi=)` | Browser-free PNG/SVG supports both single and multi-panel figures; file-like targets require an explicit `format=` and unsupported metadata/layout/export formats fail loudly | | `plt.show()` | notebooks: inline HTML display; scripts: opens the default browser | @@ -88,11 +89,11 @@ dependency-free `triangles=` shorthand into Matplotlib's equivalent | `LinearSegmentedColormap.from_list` / `ListedColormap` | Python-side callables (`cmap(np.arange(cmap.N))` → RGBA) for scripts that colormap values themselves; they cannot be passed as `cmap=` to plotting calls (no engine table), which fails loudly | | `plt.colorbar()` / `fig.colorbar()` / `plt.clim()` / `plt.gci()` | Returns a live handle (`set_label`, `set_ticks`); with no mappable it uses the current image the way pyplot does. `ticks=`/`extend=` render in PNG and SVG (the HTML colorbar stays a minimal gradient without tick text); `clim` retargets the mappable's color window and any colorbar derived from it | | `Colorbar.set_label(...)` / `colorbar(label=...)` | Matplotlib's default label geometry in all three renderers: beside a vertical bar rotated 90° counter-clockwise and centered on it, or upright and centered below a horizontal bar. The vertical label is a quarter turn, which the native PNG rasterizer renders exactly (only arbitrary text angles fall back to upright glyphs there), and the reserved right-margin room contains its cross-axis glyph extent. `set_label` ignores Matplotlib's customization kwargs (`loc=`, `labelpad=`, `rotation=`, font properties) rather than failing — the default orientation is derived from the bar | -| `rcParams` | Figure size/DPI, line width/marker size, image cmap/origin, axes color cycle, and all four `axes.spines.*` switches affect every exporter. The bounded `axes.prop_cycle` proxy supports `by_key()` and reports its color count through `len()`, including after named styles replace the cycle. Pyplot axes default to Matplotlib's four-sided box and each spine can be hidden independently. The chrome keys (axes face/edge/label/title styles, font family/size, tick colors/sizes, legend defaults, figure facecolor) reach the HTML renderer and multi-panel PNG stitching; single-chart PNG and SVG export currently render their own fixed chrome and ignore most of them. `axes.titleweight` and `axes.labelweight` are supported and verified to reach all three renderers (browser, single-chart SVG, single-chart native PNG); both default to `normal`, matching Matplotlib. Unknown keys warn once | +| `rcParams` | Figure size/DPI, line width/marker size, image cmap/origin, axes color cycle, and all four `axes.spines.*` switches affect every exporter. Pyplot axes default to Matplotlib's four-sided box and each spine can be hidden independently. The chrome keys (axes face/edge/label/title styles, font family/size, tick colors/sizes, legend defaults, figure facecolor) reach the HTML renderer and multi-panel PNG stitching; single-chart PNG and SVG export currently render their own fixed chrome and ignore most of them. `axes.titleweight` and `axes.labelweight` are supported and verified to reach all three renderers (browser, single-chart SVG, single-chart native PNG); both default to `normal`, matching Matplotlib. Unknown keys warn once | | Text weight | Title, axis-label, tick-label, legend, legend-title, colorbar-title, and annotation text all default to normal (400) weight in every renderer, matching Matplotlib's `axes.titleweight`/`axes.labelweight`/`font.weight` defaults. Heavier text needs an explicit `fontweight=`, `label_font_weight`, `styles[slot]`, or rcParam. Native PNG approximates: the bounded font atlas holds one regular and one bold face, so weights `>= 600` render bold and everything lighter renders regular — intermediate weights are not distinguishable in native PNG, while browser and SVG output pass the requested weight through verbatim. See [styling § Chrome text weight](../api/styling.md#chrome-text-weight) | | `plt.style.use(...)` / `plt.style.context(...)` | `"default"`, `"xy"`, bounded rcParam dictionaries, ordered lists, and the stock sheets fivethirtyeight, ggplot, bmh, dark_background, grayscale, seaborn-v0_8-white(grid), seaborn-v0_8-darkgrid, and seaborn-v0_8-deep — reduced to the supported rcParams subset (colors, grid, cycle, line width, font size; per-sheet keys outside that subset are not carried). The darkgrid sheet mirrors seaborn's `axes_style` (including `patch.edgecolor: white` + `patch.force_edgecolor`, which give hist/bar patches their white separators); `-deep` installs seaborn's classic color cycle. `context()` snapshots and restores. Unknown sheet names fail precisely | | `plt.GridSpec(r, c, wspace=, hspace=, width_ratios=)` + slice specs | Spans (`grid[0, 1:]`, `grid[:-1, 0]`) and custom spacing resolve to explicit figure rectangles using Matplotlib's SubplotParams frame; default-geometry single cells keep the uniform grid. Spanning layouts position exactly in HTML, PNG, and SVG: free-form panels (including `add_axes` rects and insets) render absolutely at their figure rectangles in every exporter, with later axes stacked above earlier ones | -| `add_subplot(spec, sharex=, sharey=, xticklabels=[], ...)` / reused `plt.subplot(..., sharex=, sharey=)` | per-axes sharing aliases the axis-property store (static domains, as `twiny` does), not Matplotlib's live Grouper; `get_shared_x_axes()` reflects it. Construction-only sharing keywords are handled before ordinary `Axes.set(...)` properties on both creation and activation paths | +| `add_subplot(spec, sharex=, sharey=, xticklabels=[], ...)` | per-axes sharing aliases the axis-property store (static domains, as `twiny` does), not Matplotlib's live Grouper; `get_shared_x_axes()` reflects it | ## Outside 2-D chart-method compatibility @@ -117,9 +118,8 @@ Matplotlib's caret arrows. ## Sharp edges -- Authored Matplotlib marker paths outside the bounded scatter contract, - arbitrary clipping graphs, and unsupported collection gradients are rejected - rather than silently approximated. +- Custom Matplotlib marker paths, arbitrary clipping graphs, and unsupported + collection gradients are rejected rather than silently approximated. - The shim's figure/axes bookkeeping adds ~50µs of fixed per-figure cost over the declarative API (measured 2026-07-14, M-series: +60% at 10k points, +26% at 100k — fixed cost over an ~85µs baseline, not O(n) work). diff --git a/spec/matplotlib/shim-todo.md b/spec/matplotlib/shim-todo.md index 0b3d299d..32608962 100644 --- a/spec/matplotlib/shim-todo.md +++ b/spec/matplotlib/shim-todo.md @@ -319,15 +319,19 @@ method accepts the call. properties and complete horizontal/negative-bar placement. - [x] `hist`: every histtype, heterogeneous bins, rwidth, log mode, bottom arrays and exact returned patches. -- [x] `hist2d(norm=...)` and complete normalization/colorizer support. +- [x] `hist2d` linear and logarithmic normalization through the shared + pseudocolor-mesh path, including an opaque default and retained count + domains for logarithmic mappables. +- [ ] `hist2d` arbitrary custom normalization and `colorizer` support. - [x] `hexbin(C=..., reduce_C_function=...)`, `mincnt`, marginals, norm, colorizer and explicit vmin/vmax. - [x] `boxplot`: notches, custom whiskers, bootstrap, user medians, confidence intervals, cap visibility/width, autorange and component properties. -- [x] `bxp`: component style parity, labels/ticks, cap widths and returned - component geometry. +- [x] `bxp`: component styles, statistics labels/ticks, cap widths, scalar or + per-box legend labels, and mutable filled patch boxes. - [x] `violinplot`/`violin`: bandwidth methods, quantiles, side, extrema, - points and component styling. + points, cycling face/line colors, color-alpha pairs and mutable body + styling. - [x] `ecdf`: exact weights/complementary/orientation/compression behavior and returned Artist parity. @@ -352,8 +356,10 @@ method accepts the call. normalize behavior, text properties and wedge properties. - [x] `table`: cell/row/column alignment, placement, edges, sizing, colors and mutable cell objects. -- [x] Spectral methods: window, detrending, sides, padding, frequency scaling, - modes, scale and return-value parity. +- [x] Spectral methods provide the native real-valued Hann-windowed defaults. +- [ ] Spectral callable windows/detrending, independent `pad_to`, explicit + sides/frequency scaling, complex inputs, modes and complete return-value + parity. These remain acceptance debt for `statistics/psd_demo.py`. - [x] `stem`, `stairs`, `eventplot`, and `stackplot`: complete style/container behavior, hatches, orientation and baselines. - [x] `quiver`: units, head geometry, pivots, angles, scaling, norm, z-order and