【问题标题】:Python Matplotlib Basemap - how to set zoom levelPython Matplotlib 底图 - 如何设置缩放级别
【发布时间】:2017-08-27 08:24:03
【问题描述】:

我有一个数据框,其位置以经度和纬度坐标(以度为单位)给出。这些地点在纽约附近。因此,我在 Python 中设置了一个底图,可以很好地显示所有这些位置。工作正常!

但是:地图是内联绘制的,而且非常小。我怎样才能强迫这个数字比原来大 3 倍(zoom=3)。

这是代码。数据来自Kaggle Two Sigma Rental Listing 挑战。

%matplotlib inline
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap

# New York Central Park
# Longitude: -73.968285
# Latitude: 40.785091

m = Basemap(projection='merc',llcrnrlat=40,urcrnrlat=42,\
            llcrnrlon=-75, urcrnrlon=-72, resolution='i', area_thresh=50, lat_0=40.78, lon_0=-73.96)

m.drawmapboundary()
m.drawcoastlines(color='black', linewidth=0.4)
m.drawrivers(color='blue')
m.fillcontinents(color='lightgray')

lons = df['longitude'].values
lats = df['latitude'].values
x,y = m(lons, lats)

# r = red; o = circle marker (see: http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.plot)
m.plot(x, y, 'ro', markersize=4)

plt.show()

【问题讨论】:

    标签: python matplotlib-basemap


    【解决方案1】:

    通常它会很简单:

    plt.figure(figsize=(20,10))
    

    How do you change the size of figures drawn with matplotlib?

    但也有其他一些选项,请参阅:

    How to maximize a plt.show() window using Python

    也可以获取当前大小(为了“缩放”)

    How to get matplotlib figure size

    关于具体问题:

    该图内嵌在 Jupyter 笔记本中

    在创建或绘制地图/图形之前:

    import matplotlib 
    matplotlib.rcParams['figure.figsize'] = (30,30) 
    

    【讨论】:

    • 不,这不起作用,因为该图形是内嵌在 Jupyter 笔记本中的。
    • 嗯,也许matplotlib.rcParams['figure.figsize'] 见:stackoverflow.com/questions/36367986/…
    • 确实,设置import matplotlib as mpl 然后mpl.rcParams['figure.figsize'] = (30,30) 有效。 备注:您需要在创建或绘制地图/图形之前执行此操作。如果你更新你的答案,我会接受。
    • PS:你可以帮我一个忙,尝试在仅显示曼哈顿岛的图中创建一个 zoomed_inset_axes。我阅读了很多文档,例如 this one,但总是出错。
    猜你喜欢
    • 2021-04-18
    • 2021-11-27
    • 2011-08-23
    • 2018-07-05
    • 2012-07-12
    • 2017-04-10
    • 2023-03-20
    • 2017-02-18
    相关资源
    最近更新 更多