我有一个制作基本地图的脚本,然后将图形导出到png文件:
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
def basic_map():
##geographic boudning/projection info
lon_0 = -119.610686
lat_0 = 37.246066
llcrnrlon = -129.409591
llcrnrlat = 30.034156
urcrnrlon = -109.131211
urcrnrlat = 43.009518
fig = plt.figure(figsize=(7205 / 600, 4308 / 600), dpi=600)
ax = fig.add_axes([0.001, 0.001, .999, .999])
m = Basemap(llcrnrlon=llcrnrlon, llcrnrlat=llcrnrlat, urcrnrlon=urcrnrlon, urcrnrlat=urcrnrlat, \
resolution='l', lon_0=lon_0, lat_0=lat_0, projection='aea' \
,ellps='GRS80', lat_1=llcrnrlat, lat_2=urcrnrlat,ax=ax)
m.drawcountries()
m.drawstates()
m.drawcoastlines()
ax.axis('off')
f = 'somewhere.png'
plt.savefig(f, dpi=600, bbox_inches='tight', pad_inches=0)
basic_map()
当我运行上面的脚本时,它返回一个尺寸为5358×4310像素(600 dpi)的png文件。但是,如果将几乎相同的文件(见下文)作为模块导入然后运行basic_map()函数,则返回大小为1685×1356像素(600 dpi)的png文件,即比原始尺寸小3倍:
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
def basic_map():
##geographic boudning/projection info
lon_0 = -119.610686
lat_0 = 37.246066
llcrnrlon = -129.409591
llcrnrlat = 30.034156
urcrnrlon = -109.131211
urcrnrlat = 43.009518
fig = plt.figure(figsize=(7205 / 600, 4308 / 600), dpi=600)
ax = fig.add_axes([0.001, 0.001, .999, .999])
m = Basemap(llcrnrlon=llcrnrlon, llcrnrlat=llcrnrlat, urcrnrlon=urcrnrlon, urcrnrlat=urcrnrlat, \
resolution='l', lon_0=lon_0, lat_0=lat_0, projection='aea' \
,ellps='GRS80', lat_1=llcrnrlat, lat_2=urcrnrlat,ax=ax)
m.drawcountries()
m.drawstates()
m.drawcoastlines()
ax.axis('off')
f = 'somewhere.png'
plt.savefig(f, dpi=600, bbox_inches='tight', pad_inches=0)
然后我将其作为模块导入并运行函数:
import File as F
F.basic_map()
脚本或导入的模块/函数均未报告错误。我注意到的唯一区别是,当我在导入模块/功能后运行时,会弹出一个空白的图形窗口。
我在运行High Sierra(10.13)的Mac上运行Python 3.5.4(由condo-forge打包)。
无论如何,我正在创建一个更大的地图应用程序,我需要这个函数返回更大的文件(来自脚本)。任何帮助将不胜感激!