Repository navigation
Open
Labels
enhancementNew feature or requestNew feature or request
Description
In the issue that I'm encountering, two things go wrong:
pw.load_ggplot()called on a ggplot object produces the following:
AttributeError: 'ggplot' object has no attribute '_create_figure'
- If, after attempting this, a different cell is run to display a ggplot object, the same error appears. However, ggplot objects have no problem being displayed before attempting to run
pw.load_ggplot().
So it seems that the problem is a side-effect of the functionpw.load_ggplot.
Code blocks to reproduce problem
from plotnine import ggplot, aes, geom_point, scale_color_gradient
from plotnine.data import mpg
p = ggplot(aes(x="displ", y="cty"), mpg)
P = p + geom_point()
P
This displays the plot as expected.
import patchworklib as pw
No problems at import.
pw_P = pw.load_ggplot(P, figsize=(1,1))
This gives the aforementioned attribute error, with the following traceback:
----> 1 pw.load_ggplot(P, figsize=(1,1))
File [python3.10/site-packages/patchworklib/patchworklib.py:479](python3.10/site-packages/patchworklib/patchworklib.py#line=478), in load_ggplot(ggplot, figsize)
477 matplotlib.rcParams["figure.subplot.wspace"] = figure_subplot_wspace_ori [/](workspace) figsize[0]
478 matplotlib.rcParams["figure.subplot.hspace"] = figure_subplot_hspace_ori [/](workspace) figsize[1]
--> 479 fig, gcp = gcp.draw(return_ggplot=True)
481 else:
482 fig, gcp = gcp.draw(return_ggplot=True)
File [/opt/venv/lib/python3.10/site-packages/patchworklib/modified_plotnine.py:37](python3.10/site-packages/patchworklib/modified_plotnine.py#line=36), in draw(self, return_ggplot, show)
34 self._build()
36 # setup
---> 37 figure, axs = self._create_figure()
38 self._setup_parameters()
39 self.theme.setup()
AttributeError: 'ggplot' object has no attribute '_create_figure'
After this, plotnine.ggplot objects start producing the same error. E.g., the following cell produces the same error
P
New ggplot objects suffer the same fate, eg.:
q = ggplot(aes(x="displ", y="cty"), mpg)
Q = q + geom_point()
Q
--> [...] AttributeError: 'ggplot' object has no attribute '_create_figure'
This was tested on a jupyterhub server. The problem only goes away if I restart the jupyterhub kernel.
Reacted by Abhinav Patil, HelgeS, Yuting Liu, Marcus Stoiber, liam.morgan, AmyMcCarthy2, Guangyuan Weng, Philipp S. L. Schäfer, Fernando da Silva, GPla and 2 more
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request
Activity
turtleman99 commentedon Apr 3, 2024
Solved by install an older version of
plotnineponnhide commentedon May 13, 2024
Apologies for the inconvenience. However, I am unable to continue supporting plotnine in patchworklib due to limited capacity in my labour. I believe patchworklib remains a valuable library even if it only supports matplotlib and seaborn.
If there are many requests like yours, I will consider addressing this issue, but please do not have large expectations..
I'm terribly sorry about this thing...
felimomo commentedon May 13, 2024
ponnhide commentedon Oct 12, 2024
Patchworklib tentatively supports the newest version of plotnine. However, it likely still contains many bugs and may produce unexpected results. If you find anything, please let me know.
yihuanlin commentedon Nov 9, 2024
I have the same issue in load_ggplot(ggplot, figsize) when running the script even w/o Patchworklib. It is also solved by a previous version of plotnine.
behinger commentedon Oct 10, 2025
for anyone who stumbled upon this issue like I did - greatly inspired by patchworklib - plotnine >0.15 supports | / "natively"
DSLituiev commentedon Jan 25, 2026
thank you @behinger
The documentation for plotnine native compositions is here:
https://plotnine.org/guide/plot-composition.html