Matplotlib 1.1 的新功能 (2011 年 11 月 2 日)#
注意
matplotlib 1.1 支援 Python 2.4 到 2.7
桑基圖#
Kevin Davies 將 Yannick Copin 的原始桑基圖範例擴展為一個模組 (sankey
) 並提供了新的範例 (桑基類別、使用桑基圖的長連接鏈、蘭金功率循環)。

動畫#
Ryan May 撰寫了一個獨立於後端的框架,用於建立動畫圖形。animation
模組旨在取代先前在 範例 列表中特定於後端的範例。使用新框架的範例位於 動畫 中;請參閱迷人的 雙擺 <gallery/animation/double_pendulum_sgskip.py>
,它使用 matplotlib.animation.Animation.save()
來建立以下影片。
這應視為該框架的測試版發布;請試用並提供回饋。
緊密佈局#
matplotlib 使用者經常提出的問題是缺乏佈局引擎來很好地間隔圖表的元素。雖然 matplotlib 仍然堅持讓使用者完全控制圖表元素位置的理念,但 Jae-Joon Lee 建立了 matplotlib.tight_layout
模組,並引入了一個新命令 tight_layout()
以解決最常見的佈局問題。


此功能的使用方式可以非常簡單,例如:
plt.tight_layout()
它將調整子圖之間的間距,使軸標籤不會與相鄰的子圖重疊。建立了一個 緊密佈局指南 來展示如何使用這個新工具。
PyQT4、PySide 和 IPython#
Gerald Storer 使 Qt4 後端與 PySide 以及 PyQT4 相容。然而,目前 PySide 不支援 PyOS_InputHook 機制來處理等待文字輸入時的 GUI 事件,因此它無法與 IPython 的新版本 0.11 一起使用。在 PySide 中出現此功能之前,IPython 使用者應該使用 QT4 的 PyQT4 包裝函式,它仍然是 matplotlib 的預設值。
已新增一個 rcParam 條目「backend.qt4」,以允許使用者選擇 PyQt4、PyQt4v2 或 PySide。後兩者使用 Version 2 Qt API。在大多數情況下,使用者可以忽略此 rcParam 變數;它可以幫助測試,並為在 PyQt4 或 PySide 應用程式中嵌入 matplotlib 的使用者提供控制。
圖例#
Jae-Joon Lee 改善了圖表的圖例。首先,諸如 stem()
圖之類的複雜圖例現在將會正確顯示。其次,在存在 NAN 時,圖例的「最佳」放置已得到改善。
有關更詳細的說明和範例,請參閱 圖例指南。

mplot3d#
為了持續讓 matplotlib 中的 3D 繪圖像 2D 繪圖一樣簡單,Ben Root 對 mplot3d
模組進行了多項改進。
Axes3D
類別已獲得改進,使其功能與常規的 Axes 物件更趨一致。關於 mplot3d 工具包 的文件已大幅擴充。
改進了軸標籤和方向。
大多數 3D 繪圖函數現在支援空輸入。
新增了刻度偏移顯示。

contourf()
獲得了 zdir 和 offset 關鍵字參數。您現在可以這樣做:

移除 Numerix 支援#
經過兩年多的棄用警告後,matplotlib 現在已完全移除 Numerix 支援。
標記#
plot()
和 scatter()
可用的標記清單現在已合併。雖然它們大多相似,但有些標記僅存在於其中一個函數中,而非另一個。這次合併確實導致了 'd' 菱形標記的衝突。現在,'d' 將始終被解釋為「細」菱形,而 'D' 將表示「常規」菱形。
感謝 Michael Droettboom 的努力。
其他改進#
單位支援極座標軸和
arrow()
。PolarAxes
獲得了 "theta_direction" 和 "theta_offset" 的 getter 和 setter,允許 theta 沿順時針或逆時針方向移動,並指定零度應放置的位置。set_theta_zero_location()
是一個新增的便捷函數。修正了三函數(例如
tripcolor()
)的參數處理中的錯誤。axes.labelweight
參數已新增至 rcParams。對於
imshow()
,interpolation='nearest' 現在將始終執行插值。已新增 "none" 選項,表示完全不進行插值。修正了 Hammer 投影中的錯誤。
用於
contour()
的 clabel 現在接受可呼叫對象。感謝 Daniel Hyams 的原始修補程式。Jae-Joon Lee 新增了
HBoxDivider
和VBoxDivider
類別。Christoph Gohlke 減少了
imshow()
中的記憶體使用量。scatter()
現在接受空輸入。修正了 'symlog' 刻度的行為,但這可能會導致現有圖表產生一些細微的變化。此工作由 ssyr 精進。
Peter Butterworth 為
figure()
新增了具名圖形支援。Michiel de Hoon 修改了 MacOSX 後端,使其互動行為與其他後端一致。
Pim Schellart 新增了一個名為 "cubehelix" 的新色彩映射。Sameer Grover 也新增了一個名為 "coolwarm" 的色彩映射。請參閱 此處 及其所有其他色彩映射。
許多錯誤修正和文件改進。