Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Kotak Rajah Mengembangkan Secara Dinamik untuk Legenda Luar Kapak: Penyelesaian

Kotak Rajah Mengembangkan Secara Dinamik untuk Legenda Luar Kapak: Penyelesaian

Linda Hamilton
Linda Hamiltonasal
2024-10-18 12:04:03158semak imbas

Dynamically Expanding Figure Box for Legends Outside Axes: A Solution

Mengubah Saiz Rajah Kotak Secara Dinamik untuk Legenda

Apabila meletakkan legenda di luar paksi plot dalam Matplotlib, ia boleh dipotong oleh kotak angka . Isu ini timbul apabila panjang legenda melebihi saiz paksi.

Mengelakkan Pengecilan Paksi

Berbeza dengan penyelesaian lain, mengelakkan pengecutan paksi lebih diutamakan untuk mengekalkan keterlihatan data. Mengecilkan paksi mengurangkan kebolehbacaan data, terutamanya apabila berurusan dengan plot kompleks dengan legenda yang luas.

Peluasan Kotak Rajah Dinamik

Untuk mengembangkan kotak angka secara dinamik untuk menampung legenda, laraskan panggilan savefig kepada yang berikut:

fig.savefig('samplefigure', bbox_extra_artists=(lgd,), bbox_inches='tight')

di mana bbox_extra_artists mempertimbangkan artis tambahan (dalam kes ini, legenda) semasa menentukan saiz kotak sempadan.

Kod Contoh

Kod berikut menjana plot dengan legenda di luar paksi dan secara automatik mengubah saiz kotak angka menggunakan bbox_extra_artists:

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(-2*np.pi, 2*np.pi, 0.1)
fig = plt.figure(1)
ax = fig.add_subplot(111)
ax.plot(x, np.sin(x), label='Sine')
ax.plot(x, np.cos(x), label='Cosine')
ax.plot(x, np.arctan(x), label='Inverse tan')
handles, labels = ax.get_legend_handles_labels()
lgd = ax.legend(handles, labels, loc='upper center', bbox_to_anchor=(0.5,-0.1))
text = ax.text(-0.2,1.05, "Aribitrary text", transform=ax.transAxes)
ax.set_title("Trigonometry")
ax.grid('on')
fig.savefig('samplefigure', bbox_extra_artists=(lgd,text), bbox_inches='tight')

Kod ini menghasilkan plot dengan legenda di luar paksi, dan kotak angka dilaraskan secara dinamik untuk menampung saiz legenda.

Kesimpulan

Dengan menggunakan parameter bbox_extra_artists dalam savefig, anda boleh mengembangkan kotak angka secara dinamik untuk memastikan bahawa legenda di luar kapak tidak terputus. Pendekatan ini menyediakan penyelesaian yang mudah dan berkesan tanpa kelemahan paksi mengecut.

Atas ialah kandungan terperinci Kotak Rajah Mengembangkan Secara Dinamik untuk Legenda Luar Kapak: Penyelesaian. 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