Easily create axes layouts for complex matplotlib figures.
Project description
Mpatplotlib Layout
Easily create axes layouts for complex matplotlib figures.
Dependencies
- python >= 3.7.0
- matplotlib >= 3.4
Example
This package allows easy and programmable creation of matplotlib figure layouts using the actual size and relative positioning of axes. This is useful for complex, multi-axes figures, especially those with non-grid arrangements.
This piece of example tends to create a figure layout with below schematics:
import matplotlib
import matplotlib.pyplot
from mpllayout import LayoutCreator
lc = LayoutCreator(
left_margin=0.2, # padding inches to the left
right_margin=0.3, # padding inches to the right
top_margin=0.5, # padding inches on the top
bottom_margin=0.7, # padding inches at the bottom
)
# add the first axes (axes_1) to the layout, align axes_1's bottomleft corner
# to the figure's bottomleft corner (before adding margins)
axes_1 = lc.add_frame(
"demo_axes_1", # the key to retrieve matplotlib.axes.Axes objects later
)
axes_1.set_anchor("bottomleft") # set the
axes_1.set_size(3, 4) # in inches
# next, add a second axes (axes_2) to the layout, and position the axes_2's
# bottomleft 0.5 inches to the right of axes_1's bottomright corner
# then set the size of axes_2
axes_2 = lc.add_frame("demo_axes_2")
axes_2.set_anchor(
"bottomleft", # the anchor of axes_2 to set
axes_1, "bottomright", # the reference anchor of an already-existing axes
offsets=(0.5, 0.0), # x and y offsets in relative to the reference anchor
# offsets are in inches
)
axes_2.set_size(3, 2)
# next, add a third axes (axes_3) to the layout, and position the axes_3's
# topleft corner 1.0 inches to the right of axes_1's topright corner, and its
# bottomright corner 0.2 inches above axes_2's topright corner.
#
# with both topleft and bottomright corners set, the size can be determined
# automatically. if size was manually sepcified but is different than the
# calculated size, an error will be raised
axes_3 = lc.add_frame("demo_axes_3")
axes_3.set_anchor("topleft", axes_1, "topright", offsets=(1.0, 0.0))
axes_3.set_anchor("bottomright", axes_2, "topright", offsets=(0, 0.2))
# create the layout
layout = lc.create_figure_layout()
figure = layout["figure"] # figure is a reserved key referring to the
# matplotlib.figure.Figure object hosting all the axes
# now use matplotlib to draw something and show the figure
ax1 = layout["demo_axes_1"] # retrieve the axes object using the previous key
ax1.text(0.5, 0.5, "demo_axes_1", transform=ax1.transAxes,
ha="center", va="center")
ax2 = layout["demo_axes_2"]
ax2.text(0.5, 0.5, "demo_axes_2", transform=ax2.transAxes,
ha="center", va="center")
ax3 = layout["demo_axes_3"]
ax3.text(0.5, 0.5, "demo_axes_3", transform=ax3.transAxes,
ha="center", va="center")
# show the figure
matplotlib.pyplot.show()
This will generate a figure looks like below:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mpllayout-0.1.3.tar.gz.
File metadata
- Download URL: mpllayout-0.1.3.tar.gz
- Upload date:
- Size: 30.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ee7c3766140e7ddfd6a65d0a615d99a7230bf85e4e3d18b12bd3cf281a2a0780
|
|
| MD5 |
fbf894179713209da640c68cd801ddb5
|
|
| BLAKE2b-256 |
1b4a9f1acf614252aac3d1e9b28c7542fcf8a0ab6e6ded6019b6c66420ff9c73
|
File details
Details for the file mpllayout-0.1.3-py3-none-any.whl.
File metadata
- Download URL: mpllayout-0.1.3-py3-none-any.whl
- Upload date:
- Size: 28.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f61f344276010384a6e4155458da42d017a854618a9db1a1e2639cfa71132182
|
|
| MD5 |
4d087af75cfa53924e50d3883e2488d8
|
|
| BLAKE2b-256 |
f0bd1518ad75f5bea4415db99ca190b0d296d576b8fe3b0ef5ec2f4b023c3389
|