當DISPLAY 未定義時使用Matplotlib 產生PNG
在Python 中,matplotlib 是一個靜態流行的函式庫,用於建立靜態、動畫和互動式視覺化。但是,當環境中未設定 DISPLAY 時,嘗試使用 matplotlib 產生 PNG 映像可能會導致錯誤訊息「無顯示名稱且無 $DISPLAY 環境變數」。出現此錯誤是因為 matplotlib 的預設後端需要 X 伺服器,而該伺服器在某些環境中不可用。
要解決此問題,我們必須明確設定 matplotlib 以使用 Agg(反顆粒幾何)後端。 Agg 是一個非互動式後端,不需要 X 伺服器,允許在無頭環境中建立映像。
以下是如何實現此解決方案:
import matplotlib # Force matplotlib to use the Agg backend matplotlib.use('Agg')
在導入任何其他 matplotlib 子模組(例如 pyplot)之前,將此程式碼放在腳本的開頭。透過在導入 pyplot 之前將後端設定為 Agg,我們可以確保 matplotlib 不會嘗試使用 X-using 後端。
或者,您可以透過修改 .matplotlibrc 設定檔來永久設定後端。在後端部分中,設定以下內容:
backend : Agg
此全域設定無需在腳本中明確指定後端。
一旦選擇了適當的後端配置完成後,您可以使用 matplotlib 產生 PNG 影像,而不會遇到「DISPLAY undefined」錯誤。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3