如何動態擴展圖形框大小以適應 Matplotlib 中擴展的圖例?

Susan Sarandon
發布: 2024-10-18 12:51:30
原創
449 人瀏覽過

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

擴展圖形框以容納超出的圖例

問題描述

在Matplotlib 中將圖例放置在軸之外時,它有時會超出圖例圖形框的邊界,導致出現截止外觀。透過縮小軸來調整軸的大小並不是最佳解決方案,因為它會降低資料的可見度。

動態圖形框擴展

所需的解決方案是將圖形框的大小動態擴展為容納擴展的圖例。

實作:使用bbox_extra_artists 進行自訂savefig 呼叫

要實現此目的,可以調整savefig 函數呼叫以包含bbox_extra_artists 參數:

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

這框在這框計算其大小時應考慮額外的藝術家,例如圖例(lgd)。

範例和結果

使用此修改後的savefig 呼叫:

<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>
登入後複製

產生一個圖例,其圖例超出軸但容納在擴展的圖形框中:

  Trigonometry

  2
  1
  0
 -1
 -2
 -4π  -2π     0     2π    4π
Inverse tan
Cosine
Sine
登入後複製

以上是如何動態擴展圖形框大小以適應 Matplotlib 中擴展的圖例?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!