有没有办法让Basemap不显示图?
我正在尝试在Python中使用mpl_toolkits.basemap,每次我调用像drawcoastlines()这样的绘图函数时,程序都会自动在屏幕上显示图像。
我的问题是,我打算在一个外部服务器上使用这些程序,但它返回了一个错误:'SystemExit: Unable to access the X Display, is $DISPLAY set properly?' 这意思是它无法访问显示器。
有没有办法让我在使用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.))
2 个回答
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.))
2
使用 Agg
后台,它不需要图形界面:
在你的脚本一开始就这样做:
import matplotlib as mpl
mpl.use('Agg')
另外,你可以查看常见问题解答,了解如何 生成图像而不出现窗口。