在沒有定義顯示的情況下使用Matplotlib 產生PNG
在沒有圖形使用者介面(GUI) 的情況下使用matplotlib 時,您可能會遇到錯誤,指示「沒有顯示名稱,也沒有$DISPLAY 環境變數。」出現此錯誤的原因是matplotlib 預設嘗試使用基於 X 的後端。
要在沒有圖形介面的系統上解決此問題,請依照下列步驟操作:
第1 步:強制Matplotlib 使用Agg 後端
在從matplotlib 套件導入任何元件之前,請包含此程式碼以強制使用matplotlib使用非互動式「Agg」後端:
import matplotlib # Force matplotlib to not use any Xwindows backend. matplotlib.use('Agg')
第2 步:處理潛在警告
根據matplotlib 的版本,您可以收到有關後端選擇順序的警告。確保在對 matplotlib 模組進行任何其他呼叫之前執行此程式碼。
替代方案:編輯.matplotlibrc
您可以修改matplotlib 配置,而不是在程式碼中指定後端檔案「.matplotlibrc」位於使用者的家中目錄:
這將確保 matplotlib 始終使用「Agg」後端,無論程式碼執行如何
範例
考慮以下 Python程式碼:
import matplotlib matplotlib.use('Agg') import networkx as nx import matplotlib.pyplot as plt G = nx.Graph() G.add_node(1) G.add_nodes_from([2, 3, 4, 5, 6, 7, 8, 9, 10]) nx.draw(G) plt.savefig("/var/www/node.png")
透過在匯入networkx和matplotlib,錯誤應該得到解決,讓您在沒有圖形介面的情況下產生PNG映像。
以上是如何在沒有顯示器的系統上使用 Matplotlib 產生 PNG 影像?的詳細內容。更多資訊請關注PHP中文網其他相關文章!