iT邦幫忙

0

CentOS系統內個人帳號無法開啟Python matplotlib的圖形視窗

如標題所述,Server工作環境為CentOS7,Python版本為3.6.5

其他使用者的Python再叫出其圖形視窗皆無問題,但唯有我的帳號無法叫出圖形視窗,但事實上我在使用非Python時,我的Xwindow是正常使用的,唯獨在Python上用各module的指令皆無法叫出其圖形

以下為其中一個例子,Code本身是沒什麼問題的,但偏偏無法顯現圖

from scipy import signal
import matplotlib.pyplot as plt
import numpy as np

fs = 10e3
N = 1e5
amp = 2 * np.sqrt(2)
noise_power = 0.01 * fs / 2
time = np.arange(N) / float(fs)
.
.
.
plt.pcolormesch(t, f, Sxx)
plt.ylabel('Frequency [Hz]')
plt.xlabel('Time [sec]')
plt.show()

正常來說應該會顯示出下面的圖
https://ithelp.ithome.com.tw/upload/images/20191028/20122491pEhN8cAMWR.png

但實際上執行後卻沒有任何圖形出現
https://ithelp.ithome.com.tw/upload/images/20191028/20122491Qm1xTIuiO4.jpg

同樣一份Code在同一個Server不同帳號下卻能執行成功
請問各位前輩有誰能告訴我可能的問題出在哪嗎? (我有server root權限)
(我有爬文過,包括國外網站,但不知道是爬的方式不對或是太基本找不到類似情況)

看更多先前的討論...收起先前的討論...
echochio iT邦高手 1 級 ‧ 2019-10-28 20:16:27 檢舉
想來 .....
應該是 Xwindow 的問題 , 這個帳號執行 pyhon 呼叫 繪圖有問題 ....
https://www.programcreek.com/python/example/55230/matplotlib.get_backend
https://matplotlib.org/3.1.1/api/matplotlib_configuration_api.html

最好用程式方式, 別只用互動的,有時候你前面跑的程式設定到輸出到某個檔案了,
例如png或pdf. 然後你又只開一個shell,沒去檢查目錄下的檔案,就一直在那裡試.

https://www.programcreek.com/python/example/1150/matplotlib.use

使用 matplotlib.use 設定.

The backend to switch to. This can either be one of the standard backend names, which are case-insensitive:

interactive backends: GTK3Agg, GTK3Cairo, MacOSX, nbAgg, Qt4Agg, Qt4Cairo, Qt5Agg, Qt5Cairo, TkAgg, TkCairo, WebAgg, WX, WXAgg, WXCairo
non-interactive backends: agg, cairo, pdf, pgf, ps, svg, template

你可以用 get_backend 去查,其他帳號能顯示的.還有你目前被設定的.
dw7532146 iT邦新手 5 級 ‧ 2019-10-29 09:57:46 檢舉
我試試看
dw7532146 iT邦新手 5 級 ‧ 2019-10-29 10:31:08 檢舉
比照別人的之後再Switch backend就解決了,感謝一級大大

尚未有邦友回答

立即登入回答