如何更正此代码以将点放置在地图的右侧部分?

2024-09-29 06:25:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在底图上画一个散点图,我的代码是: %matplotlib内联 从mpl\u toolkits.basemap导入basemap

创建图形和轴

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

m = Basemap(projection='lcc', resolution='h', \
    lat_0=51.53, lon_0=0.08,
    width=1E6, height=1.2E6)
m.shadedrelief()
m.drawcoastlines(color='gray')
m.drawcountries(color='gray')


y,x = m(dfrt['lon'].values, dfrt['lat'].values)
m.scatter(x,y, marker="o", color='g', alpha=0.7, zorder=5)

plt.title("Localización de los Bikepoints")
plt.show()

dfrt是这个数据帧:

commonName  id  lat lon placeType   url additionalProperties2   category    key sourceSystemKey value   modified
0   River Street , Clerkenwell  BikePoints_1    51.529163   -0.109970   BikePoint   /Place/BikePoints_1 {'$type': 'Tfl.Api.Presentation.Entities.Addit...   Description TerminalName    BikePoints  001023  2019-08-22T11:17:04.327Z
1   Phillimore Gardens, Kensington  BikePoints_2    51.499606   -0.197574   BikePoint   /Place/BikePoints_2 {'$type': 'Tfl.Api.Presentation.Entities.Addit...   Description TerminalName    BikePoints  001018  2019-08-22T11:10:02.34Z
2   Christopher Street, Liverpool Street    BikePoints_3    51.521283   -0.084605   BikePoint   /Place/BikePoints_3 {'$type': 'Tfl.Api.Presentation.Entities.Addit...   Description TerminalName    BikePoints  001012  2019-08-22T11:12:02.7Z
3   St. Chad's Street, King's Cross BikePoints_4    51.530059   -0.120973   BikePoint   /Place/BikePoints_4 {'$type': 'Tfl.Api.Presentation.Entities.Addit...   Description TerminalName    BikePoints  001013  2019-08-22T11:08:02.047Z
4   Sedding Street, Sloane Square   BikePoints_5    51.493130   -0.156876   BikePoint   /Place/BikePoints_5 {'$type': 'Tfl.Api.Presentation.Entities.Addit...   Description TerminalName    BikePoints  003420  2019-08-22T11:14:02.787Z

但我得到的图不正确,绿点应该在伦敦:

Wrong map

有什么想法吗?谢谢


Tags: apistreettypeplacepltdescriptionpresentationentities
2条回答

看起来你的x和y颠倒了。尝试改变

y,x = m(dfrt['lon'].values, dfrt['lat'].values)

x,y = m(dfrt['lon'].values, dfrt['lat'].values)

您输入了一个拼写错误:

y,x = m(dfrt['lon'].values, dfrt['lat'].values)

内容如下:

x,y = m(dfrt['lon'].values, dfrt['lat'].values)

根据Matplotlib文件: matplotlib basemap

以下是您预期的结果:

enter image description here

相关问题 更多 >