首頁 >後端開發 >Python教學 >如何在沒有顯示器的系統上使用 Matplotlib 產生 PNG 影像?

如何在沒有顯示器的系統上使用 Matplotlib 產生 PNG 影像?

DDD
DDD原創
2024-12-14 12:40:12540瀏覽

How to Generate PNG Images with Matplotlib on Systems Without a Display?

在沒有定義顯示的情況下使用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」位於使用者的家中目錄:

  • 使用文字編輯器開啟.matplotlibrc。
  • 將行 'backend: Agg' 加入到檔案中。
  • 儲存並關閉檔案。

這將確保 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中文網其他相關文章!

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