動態擴展外軸圖例的圖形框:一種解決方案

Linda Hamilton
發布: 2024-10-18 12:04:03
原創
158 人瀏覽過

Dynamically Expanding Figure Box for Legends Outside Axes: A Solution

動態調整圖例的圖形框大小

在Matplotlib 中將圖例放置在繪圖軸之外時,它們可以被圖形框截斷。當圖例長度超過軸大小時,就會出現此問題。

避免軸收縮

與其他解決方案不同,避免軸收縮是維持資料可見性的首選。縮小軸會降低資料可讀性,尤其是在處理具有大量圖例的複雜繪圖時。

動態圖形框擴展

要動態擴展圖形框以容納圖例,將savefig 呼叫調整為以下內容:

fig.savefig('samplefigure', bbox_extra_artists=(lgd,), bbox_inches='tight')
登入後複製

其中bbox_exboxdists在決定邊界框大小時考慮其他藝術家(在本例中為圖例)。

範例程式碼

以下程式碼產生圖例在軸外的圖,並使用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')
登入後複製

此程式碼產生圖例在軸外的圖,並且動態調整圖形框以適應圖例大小。

結論

透過使用 savefig 中的 bbox_extra_artists 參數,可以動態擴展圖形框以確保軸外的圖例不會被切斷。這種方法提供了一種方便有效的解決方案,並且沒有軸收縮的缺點。

以上是動態擴展外軸圖例的圖形框:一種解決方案的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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