Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Menghalang Subplot Bertindih dalam Matplotlib Apabila Mencipta Banyak Plot Bertindan Menegak?

Bagaimanakah Saya Boleh Menghalang Subplot Bertindih dalam Matplotlib Apabila Mencipta Banyak Plot Bertindan Menegak?

Patricia Arquette
Patricia Arquetteasal
2024-12-06 03:26:12648semak imbas

Bertindih Subplot dalam Matplotlib dengan Banyak Plot

Apabila menjana satu siri plot bertindan menegak dalam Matplotlib untuk dipaparkan pada halaman web, memastikan jarak yang sesuai antara subplot adalah penting untuk mengelakkan pertindihan. Walaupun meningkatkan saiz angka, subplot sering bertindih.

Pelaksanaan Semasa

Kod berikut menggambarkan pelaksanaan semasa:

import matplotlib.pyplot as plt
import my_other_module

titles, x_lists, y_lists = my_other_module.get_data()

fig = plt.figure(figsize=(10,60))
for i, y_list in enumerate(y_lists):
    plt.subplot(len(titles), 1, i)
    plt.xlabel("Some X label")
    plt.ylabel("Some Y label")
    plt.title(titles[i])
    plt.plot(x_lists[i],y_list)
fig.savefig('out.png', dpi=100)

Penyelesaian: Reka Letak Ketat

Untuk menangani isu ini, pertimbangkan untuk menggunakan matplotlib.pyplot.tight_layout atau matplotlib.figure.Figure.tight_layout. Fungsi ini melaraskan subplot dan jarak supaya ia tidak bertindih.

Contoh

import matplotlib.pyplot as plt

fig, axes = plt.subplots(nrows=4, ncols=4, figsize=(8, 8))
fig.tight_layout() # Or equivalently,  "plt.tight_layout()"

plt.show()

Perbandingan Visual

Imej berikut menunjukkan kesan penggunaan tight_layout:

Tanpa susun_atur_ketat

How Can I Prevent Overlapping Subplots in Matplotlib When Creating Many Vertically Stacked Plots?

Dengan susun atur_ketat

How Can I Prevent Overlapping Subplots in Matplotlib When Creating Many Vertically Stacked Plots?

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghalang Subplot Bertindih dalam Matplotlib Apabila Mencipta Banyak Plot Bertindan Menegak?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn