Meletakkan Sumbu dalam Gambar dalam kisi yang tidak seragam bisa membosankan dan bertele-tele. Untuk kisi-kisi padat dan rata yang dimiliki Figure.subplots tetapi untuk tata letak yang lebih kompleks, seperti Sumbu yang membentang beberapa kolom / baris tata letak atau membiarkan beberapa area Gambar kosong, Anda dapat menggunakan gridspec.GridSpec(lihat Menyesuaikan Tata Letak Gambar Menggunakan GridSpec dan Fungsi Lainnya ) atau secara manual tempatkan kapak Anda. Figure.subplot_mosaicbertujuan untuk menyediakan antarmuka untuk meletakkan sumbu Anda secara visual (baik sebagai seni ASCII atau daftar bersarang) untuk merampingkan proses ini.
Antarmuka ini secara alami mendukung penamaan sumbu. Figure.subplot_mosaic mengembalikan kamus yang dikunci pada label yang digunakan untuk meletakkan Gambar. Dengan mengembalikan struktur data dengan nama, lebih mudah untuk menulis kode plot yang independen dari tata letak Gambar.
Contoh Script:
import
matplotlib.pyplot as plt import numpy as np # Helper function used for
visualization in the following examples def identify_axes(ax_dict,
fontsize=48): kw = dict(ha="center",
va="center", fontsize=fontsize, color="darkgrey") for k, ax in ax_dict.items(): ax.text(0.5, 0.5, k,
transform=ax.transAxes, **kw) |
np.random.seed(19680801) hist_data =
np.random.randn(1_500) fig = plt.figure(constrained_layout=True) ax_array = fig.subplots(2, 2,
squeeze=False) ax_array[0,
0].bar(["a", "b", "c"], [5, 7, 9]) ax_array[0, 1].plot([1, 2, 3]) ax_array[1, 0].hist(hist_data,
bins="auto") ax_array[1, 1].imshow([[1, 2],
[2, 1]]) identify_axes( {(j, k): a for j, r in
enumerate(ax_array) for k, a in enumerate(r)}, ) |
fig =
plt.figure(constrained_layout=True) ax_dict = fig.subplot_mosaic( [ ["bar", "plot"], ["hist",
"image"], ], ) ax_dict["bar"].bar(["a",
"b", "c"], [5, 7, 9]) ax_dict["plot"].plot([1,
2, 3]) ax_dict["hist"].hist(hist_data) ax_dict["image"].imshow([[1,
2], [2, 1]]) identify_axes(ax_dict) |
print(ax_dict) |
axd =
plt.figure(constrained_layout=True).subplot_mosaic( """ ABD CCD """ ) identify_axes(axd) |
axd =
plt.figure(constrained_layout=True).subplot_mosaic( """ A.C BBB .D. """ ) identify_axes(axd) |
axd =
plt.figure(constrained_layout=True).subplot_mosaic( """ .a. bAc .d. """, gridspec_kw={ # set the height ratios between the
rows "height_ratios": [1, 3.5,
1], # set the width ratios between the
columns "width_ratios": [1, 3.5,
1], }, ) identify_axes(axd) |
axd =
plt.figure(constrained_layout=True).subplot_mosaic( "AB",
subplot_kw={"projection": "polar"} ) identify_axes(axd) |
mosaic = np.zeros((4, 4),
dtype=int) for j in range(4): mosaic[j, j] = j + 1 axd =
plt.figure(constrained_layout=True).subplot_mosaic( mosaic, empty_sentinel=0, ) identify_axes(axd) |
0 Response to "Complex and semantic figure composition"
Posting Komentar