亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將matplotlib圖例移到軸外,使其被圖形框切斷

將matplotlib圖例移到軸外,使其被圖形框切斷

繁星coding 2019-11-05 11:22:20
縮小軸并不是一個理想的解決方案,因為它會使數據變小,從而實際上很難解釋。特別是當它復雜并且有很多事情要發生時...因此需要一個大的傳說文檔中復雜圖例的示例說明了這一點,因為其圖中的圖例實際上完全遮蓋了多個數據點。http://matplotlib.sourceforge.net/users/legend_guide.html#legend-of-complex-plots我想做的是動態擴展圖形框的大小以適應不斷擴展的圖形圖例。import matplotlib.pyplot as pltimport numpy as npx = 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')lgd = ax.legend(loc=9, bbox_to_anchor=(0.5,0))ax.grid('on')請注意,最終標簽“ Inverse tan”實際上是如何位于圖形框之外的(看起來很不完整-而不是出版物質量?。┳詈?,有人告訴我這是R和LaTeX中的正常行為,所以我有些困惑,為什么在python中如此困難……是否有歷史原因?Matlab在這件事上是否同樣貧窮?我在pastebin http://pastebin.com/grVjc007上有(僅略長)此代碼的較長版本
查看完整描述

3 回答

?
12345678_0001

TA貢獻1802條經驗 獲得超5個贊

補充:我發現應該立即解決問題的方法,但是下面的代碼其余部分也提供了替代方法。


使用此subplots_adjust()函數可將子圖的底部向上移動:


fig.subplots_adjust(bottom=0.2) # <-- Change the 0.02 to work for your plot.

然后bbox_to_anchor在圖例命令的圖例部分中使用偏移量,以將圖例框放置在所需的位置。設置figsize和使用的某種組合subplots_adjust(bottom=...)應該可以為您產生質量圖。


備選: 我只是更改了這一行:


fig = plt.figure(1)

至:


fig = plt.figure(num=1, figsize=(13, 13), dpi=80, facecolor='w', edgecolor='k')

并改變了


lgd = ax.legend(loc=9, bbox_to_anchor=(0.5,0))


lgd = ax.legend(loc=9, bbox_to_anchor=(0.5,-0.02))

并在我的屏幕(24英寸CRT顯示器)上正常顯示。


此處figsize=(M,N)將圖形窗口設置為M英寸乘N英寸。只是玩這個,直到它看起來適合您。將其轉換為更具可伸縮性的圖像格式,并在必要時使用GIMP進行編輯,或者viewport在包括圖形時僅使用LaTeX 選項進行裁剪。


查看完整回答
反對 回復 2019-11-05
  • 3 回答
  • 0 關注
  • 1199 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號