nschloe / tikzplotlib

:bar_chart: Save matplotlib figures as TikZ/PGFplots for smooth integration into LaTeX.
MIT License
2.43k stars 218 forks source link

`matplotlib 3.6` deprecates `pgf.common_texification` #559

Open Sbozzolo opened 2 years ago

Sbozzolo commented 2 years ago

tikzplotlib with matplotlib >= 3.6 emits a deprecation warning:

tikzplotlib/_axes.py:12: MatplotlibDeprecationWarning: The common_texification function was deprecated in Matplotlib 3.6 and will be removed two minor releases later.
francois-durand commented 1 year ago

Hi, This issue becomes critical because common_texification has been suppressed from matplotlib 3.8. Hence sadly, packages that use tikzplotlib now fail their tests because even just importing tikzplotlib leads to an error, unless if we specify that matplotlib should be <=3.7. :'-( Thanks for the awesome job on tikzplotlib, by the way!

FriedrichFroebel commented 1 year ago

common_texification basically has been a public wrapper around the private _tex_escape method during the deprecation phase (see https://github.com/matplotlib/matplotlib/commit/336028f4d521a23d9ea2de88b1faf82eddfa5b52#diff-3ceb75d68efae3eba151a1bb856b1ea8467d64abcb0dc725ed3fa2e441e16fcaR96-R126 and https://github.com/matplotlib/matplotlib/blob/a302267d7f0ec4ab05973b984f7b56db21bf524c/lib/matplotlib/backends/backend_pgf.py#L100-L125). I do not know how https://github.com/matplotlib/matplotlib/commit/1936c948476b7d58d10f2c50003a0b9c38f30477 influences tikzplotlib as well.

While there is no solution (which I do not expect in the near future, but evaluating a possible PR should always be possible to support others which face a similar issue), you might want to try monkey-patching the corresponding method with either the old or the new implementation.

francois-durand commented 1 year ago

Thanks for the answer! For the moment, I just configure my CI to run with matplotlib 3.7 and it works fine.

Sbozzolo commented 1 year ago

Is there any plan to address this?

FriedrichFroebel commented 1 year ago

See my previous comment: You might submit a corresponding PR or decide to monkey-patch this for now. Please note that development is more or less stalled at the moment unfortunately, although there have been some notes about possible changes in the future.

Codesbyusman commented 2 months ago

Is there any solution, or need to downgrade matplotlib? :(