2015-01-10 176 views
7

下面的屏幕截圖顯示了我的xaxis。我添加了一些標籤並旋轉了90度以更好地閱讀它們。但是,pyplot會截斷底部,導致我無法完全讀取標籤。如何擴展底部邊距以查看完整標籤?pyplot:在圖底部延長頁邊距

enter image description here

回答

18

兩個追溯方式:

fig, ax = plt.subplots() 
# ... 
fig.tight_layout() 

或者

fig.subplots_adjust(bottom=0.2) # or whatever 

這裏有一個subplots_adjust例如:http://matplotlib.org/examples/pylab_examples/subplots_adjust.html

(但我更喜歡tight_layout

+1

你也可以告訴傳遞'tight_layout = TRUE'到'subplots'其中SA同樣的效果。 – tacaswell

+0

有沒有辦法做到這一點*沒有*使用''tight_layout''和'subplots''?即如果只是通過「plt.plot(...)」創建一個圖形並添加一個圖形。我問的原因是因爲我試圖爲一部電影創建多個圖形,並且如果使用''subplots''和/或''tight_layout'',則標題和軸標籤擺動。任何幫助,將不勝感激。 – Wolpertinger

+1

@Wolpertinger:'fig = plt.figure();圖2.add_axes(...);'https://matplotlib.org/api/_as_gen/matplotlib.figure.Figure.html#matplotlib.figure.Figure.add_axes –

1

子圖調整對我來說不起作用,因爲整個數字只會隨着標籤仍然超出範圍而調整大小。

我找到了一個解決方法是保持y軸總是在最高或最低的y值一定幅度:

x1,x2,y1,y2 = plt.axis() 
plt.axis((x1,x2,y1 - 100 ,y2 + 100)) 
1

已經爲我工作一個快速在線解決方案是使用pyplot的汽車tight_layout method直接,在Matplotlib 1.1版起提供:

plt.tight_layout() 

這可以立即您展示圖(plt.show())調用之前,但您在軸上的操作(例如標籤旋轉等)。

這種方便的方法避免了操縱子圖的個別數字。

其中PLT與標準pyplot: import matplotlib.pyplot as plt