我正在尝试在python上使用mpl_toolkits.basemap,每次我使用一个函数进行绘图,如drawcoastlines()或任何其他,程序会自动在屏幕上显示图。
我的问题是我试图稍后在外部服务器上使用这些程序并返回'SystemExit:无法访问X显示器,是否正确设置了$ DISPLAY?'
有什么办法可以避免在我使用Basemap功能时显示的情节? 我只是想把它保存到一个文件中,以后我可以在外面读它。
我的代码是:
from mpl_toolkits.basemap import Basemap
import numpy as np
m = Basemap(projection='robin',lon_0=0)
m.drawcoastlines()
#m.fillcontinents(color='coral',lake_color='aqua')
# draw parallels and meridians.
m.drawparallels(np.arange(-90.,120.,10.))
m.drawmeridians(np.arange(0.,360.,60.))
答案 0 :(得分:2)
使用Agg
后端,它不需要图形环境:
在脚本的最开头执行此操作:
import matplotlib as mpl
mpl.use('Agg')
另请参阅Generate images without having a window appear上的常见问题解答。
答案 1 :(得分:0)
最简单的方法是推迟matplotlib的交互模式。
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
import numpy as np
#NOT SHOW
plt.ioff()
m = Basemap(projection='robin',lon_0=0)
m.drawcoastlines()
#m.fillcontinents(color='coral',lake_color='aqua')
# draw parallels and meridians.
m.drawparallels(np.arange(-90.,120.,10.))
m.drawmeridians(np.arange(0.,360.,60.))