首頁 >後端開發 >Python教學 >如何防止Matplotlib中圖例被截斷並保持資料可見性?

如何防止Matplotlib中圖例被截斷並保持資料可見性?

Barbara Streisand
Barbara Streisand原創
2024-10-18 12:20:03480瀏覽

How to Prevent Cut-off Legend in Matplotlib and Maintain Data Visibility?

透過調整圖形框大小來解決Matplotlib 中的圖例截斷問題

在Matplotlib 中,將圖例移到繪圖軸之外通常會導致其被圖形框截斷。雖然縮小軸被建議作為一種解決方案,但它會降低資料可見性,尤其是在呈現具有大量圖例條目的複雜繪圖時。

正如Benjamin Root 在Matplotlib 郵件列表上的回復中所強調的,更有效的方法包括修改savefig 呼叫以將圖例合併為額外的藝術家:

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

此方法與使用ight_layout 類似,使savefig 在計算圖形框大小時能夠考慮圖例。

以下增強的程式碼範例示範了解決方案:

import matplotlib.pyplot as plt
import numpy as np

plt.gcf().clear()
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')

現在可以動態調整圖形框大小以適應圖例,防止其被截斷,同時保持資料可見性。

以上是如何防止Matplotlib中圖例被截斷並保持資料可見性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn