gpt4 book ai didi

python - 试图在 BASEMAP (Python) 上绘制数据点

转载 作者:行者123 更新时间:2023-12-04 09:42:55 25 4
gpt4 key购买 nike

我有一些关于特内里费岛一些站点的气象数据(这个数据框有岛上某些点的纬度、经度和温度)(数据来源是 AEMET 开放数据,所以它们应该是值得信赖的)

我已经成功绘制了 basemap ,但是当我想在 basemap 上绘制数据框中的点时,结果真的很奇怪。
这是我拥有的数据:

enter image description here

我改变了顺序,所以当我使用 imshow 时,顺序是 x、y、温度,其中 x 是纬度,y 是经度。

绘制我写的 map :

m = Basemap(llcrnrlon=-17,llcrnrlat=27.8,urcrnrlon=-16,urcrnrlat=28.7,resolution='i',projection='merc')


im = m.imshow(temp, cmap='BuPu')


cbi=plt.colorbar(im,shrink=0.7,format='%.1f')


plt.show()

结果给了我:

enter image description here

但是,我只想在它们的位置上绘制点,例如,如果点在坐标 x,y 中,它应该只出现在 map 中这个位置的一点点。

有什么帮助吗?

谢谢!

最佳答案

检查此代码:

import pandas as pd
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap

df = pd.read_csv('data.csv')

m = Basemap(llcrnrlon = -17, llcrnrlat = 27.8, urcrnrlon = -16, urcrnrlat = 28.7, resolution = 'i', projection = 'merc')
m.drawcoastlines(color = 'black')

x, y = m(list(df['x']), list(df['y']))
m.scatter(x, y,
c = df['temperatura'],
s = 100,
cmap = 'RdBu_r')

plt.colorbar()
plt.show()

这给出了这张 map :

enter image description here

您使用过 imshow() ,但是这个函数对于绘制来自 NxM 的图像很有用矩阵,所以你总是会得到一个彩色矩形,就像你的紫色图像一样。
您在 x 中有数据- y ( lon - lat ) 坐标格式,因此您可以绘制散点图,显示 map 上这些点的温度,就像我的代码一样,测量这些温度的位置。
如果你想要一个分布式彩色 map (技术术语是 温度场 ),像这样:

enter image description here

您需要像 meshgrid 这样的分布式数据.

关于python - 试图在 BASEMAP (Python) 上绘制数据点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62251623/

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