在脚本与导入函数中生成时,Matplotlib / Basemap图形大小不同

时间:2017-10-19 16:10:23

标签: python matplotlib save matplotlib-basemap

我有一个制作基本地图的脚本,然后将图形导出到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打包)。

无论如何,我正在创建一个更大的地图应用程序,我需要这个函数返回更大的文件(来自脚本)。任何帮助将不胜感激!

0 个答案:

没有答案