Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengembangkan Saiz Kotak Rajah Secara Dinamik untuk Menampung Legenda Mengembang dalam Matplotlib?

Bagaimana untuk Mengembangkan Saiz Kotak Rajah Secara Dinamik untuk Menampung Legenda Mengembang dalam Matplotlib?

Susan Sarandon
Susan Sarandonasal
2024-10-18 12:51:30445semak imbas

How to Expand Figure Box Size Dynamically to Accommodate an Expanding Legend in Matplotlib?

Memperluaskan Kotak Rajah untuk Menampung Legenda Melebihi

Penerangan Isu

Apabila meletakkan legenda di luar paksi dalam Matplotlib, ia kadangkala boleh melangkaui sempadan kotak angka, menghasilkan penampilan potongan. Mengubah saiz paksi paksi dengan mengecilkannya bukanlah penyelesaian yang optimum, kerana ia mengurangkan keterlihatan data.

Peluasan Kotak Rajah Dinamik

Penyelesaian yang dikehendaki adalah untuk mengembangkan saiz kotak rajah secara dinamik kepada menampung legenda yang semakin berkembang.

Pelaksanaan: Panggilan savefig tersuai dengan bbox_extra_artists

Untuk mencapai ini, panggilan fungsi savefig boleh dilaraskan untuk memasukkan hujah bbox_extra_artists:

<code class="python">fig.savefig('samplefigure', bbox_extra_artists=(lgd,), bbox_inches='tight')</code>

Ini menyatakan bahawa kotak angka harus mempertimbangkan artis tambahan, seperti legenda (lgd), apabila mengira saiznya.

Contoh dan Hasil

Menggunakan panggilan savefig yang diubah suai ini:

<code class="python">import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure(1)
ax = fig.add_subplot(111)
ax.set_title("Trigonometry")
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')
lgd = ax.legend(loc='upper center', bbox_to_anchor=(0.5,-0.1))
ax.grid('on')
fig.savefig('samplefigure', bbox_extra_artists=(lgd,), bbox_inches='tight')</code>

Menghasilkan angka dengan lagenda melangkaui paksi tetapi ditempatkan dalam kotak angka yang diperluas:

  Trigonometry

  2
  1
  0
 -1
 -2
 -4π  -2π     0     2π    4π
Inverse tan
Cosine
Sine

Atas ialah kandungan terperinci Bagaimana untuk Mengembangkan Saiz Kotak Rajah Secara Dinamik untuk Menampung Legenda Mengembang dalam Matplotlib?. 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