import nbdev; nbdev.nbdev_export()
from dotenv import load_dotenv; load_dotenv();
π Matplotlib integration
.fig
.rgb
, .chans
and .plt
all have a .fig
attribute that returns a matplotlib figure object.
= numbers.rgb.fig # matplotlib figure
a print(type(a))
a
<class 'matplotlib.figure.Figure'>
numbers.chans.fig
numbers.plt.fig
="mean").fig numbers.plt(center
Saving the figure
You can save the figure by calling its savefig
method:
"tench.jpg") numbers.rgb.fig.savefig(
!file tench.jpg; rm tench.jpg
tench.jpg: JPEG image data, JFIF standard 1.01, resolution (DPI), density 100x100, segment length 16, baseline, precision 8, 196x196, components 3
Using existing Axes
All functions allow an ax=
argument that accepts an existing Axes
object into which they will plot:
= plt.figure(figsize=(8,3))
fig True)
fig.set_constrained_layout(= fig.add_gridspec(2,2)
gs = fig.add_subplot(gs[0, :])
ax1 = fig.add_subplot(gs[1, 0])
ax2 = fig.add_subplot(gs[1,1:])
ax3
ax2.set_axis_off()
ax3.set_axis_off()
=ax1)
numbers.plt(ax=ax2)
numbers.rgb(ax=ax3); numbers.chans(ax
Without Jupyter
By default, the Lovely functions will call plt.close(fig)
on the figures they create.
This prevents displaying the figures twice when running in Jupyter.
If you are not using Jupyter, here are 2 configuration options you might want to set:
fig_close=False
#!/usr/bin/env python
from lovely_grad import config, set_config
...
=False)
set_config(fig_close
numbers.chans()
# or, using the context manager:
with config(fig_close=False):
numbers.chans()
# Will show all open figures plt.show()
fig_show=True
If set, lovely will call plt.show()
after each figure creation.
You donβt need to set fig_close=False
manually.
=True)
set_config(fig_show
# Figure generated and shown
numbers.chans()
# Note, you have to use the "call" syntax `( )`, as figure
# generation is not triggerd by just accessing the attribute
# No figure generated
numbers.chans
= numbers.plt.fig # figure generated, shown, and returned. f
Note, plt.show()
closes all figures.