gpt4 book ai didi

matplotlib - 在matplotlib basemap 中使用比例尺

转载 作者:行者123 更新时间:2023-12-04 04:17:27 32 4
gpt4 key购买 nike

from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
import numpy as np

m = Basemap(projection='cyl',resolution='c',area_thresh=10,llcrnrlon=-180,urcrnrlon=180,\
llcrnrlat=-90,urcrnrlat=90)
m.etopo()

实际上,我不知道如何提供显示比例尺所需的lat,lon,lat0和lon0参数。如何提供它们?
map.drawmapscale(????,barstyle='simple',units='km',fontsize=9,labelstyle='simple',fontcolor='k')

该教程位于

http://matplotlib.org/basemap/api/basemap_api.html描述如下:
drawmapscale(lon, lat, lon0, lat0, length, barstyle='simple', units='km', fontsize=9, yoffset=None, labelstyle='simple', fontcolor='k', fillcolor1='w', fillcolor2='k', ax=None, format='%d', zorder=None)

如果有人可以帮助我,将不胜感激。

最佳答案

看来drawmapscale不支持Basemapprojection='cyl'实例(可能还有其他支持;我只检查了projection='cyl'projection='moll'):

In [7]: m = Basemap(projection='cyl',resolution='c',area_thresh=10,llcrnrlon=-180,\
urcrnrlon=180, llcrnrlat=-90,urcrnrlat=90)

In [8]: m.etopo()
Out[8]: <matplotlib.image.AxesImage at 0x10a899e90>

In [10]: m.drawmapscale(50, -75, 0, 0, 400)

这将导致以下错误:
ValueError: cannot draw map scale for projection='cyl'

但是 drawmapscale似乎确实适用于其他预测。例如,使用Mollweide:
In [11]: m = Basemap(projection='moll', lon_0=0)
In [12]: m.etopo()
Out[12]: <matplotlib.image.AxesImage at 0x10c299450>

In [13]: m.drawmapscale(50, -75, 0, 0, 400)
Out[13]:
[<matplotlib.lines.Line2D at 0x11d2e41d0>,
<matplotlib.lines.Line2D at 0x109cd4d90>,
<matplotlib.lines.Line2D at 0x11d2e4750>,
<matplotlib.text.Text at 0x11d2e4d90>,
<matplotlib.text.Text at 0x11d2e5610>]

不幸的是, Basemap API似乎没有提及任何不适用于所有投影的内容。但是 here似乎是一个潜在的解决方法。

关于matplotlib - 在matplotlib basemap 中使用比例尺,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20548211/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com