2024-05-03 06:46:41 发布
网友
我有一个很长的纬度和经度列表,最终目标是在北美地图上标出每对经纬度出现的次数。例如,我有一个名为sort_df的数据帧,它看起来像:
longitude -95 -94 -93 -92 latitude 43 0 4 8 3 44 7 3 0 0
使用排序_数据框值pmeshcolor,我可以绘制数据。代码如下:
上面的代码生成的绘图如下所示:
问题:在sort_df定义的lat/lon网格上应该只有颜色。在
问:如何使网格出现在地图上的正确位置?在
你在转换纬度时弄错了。数组lats和{}为空。在
lats
代码的另一个问题是data必须具有[nx-1,ny-1]的形状才能用pcolormesh绘制(它在点之间绘制):
data
pcolormesh
import numpy as np from mpl_toolkits.basemap import Basemap import matplotlib.pyplot as plt from pandas import DataFrame m = Basemap(llcrnrlon = -170, llcrnrlat = 10, urcrnrlon = -50, urcrnrlat = 80) m.drawcoastlines() m.drawstates() lon = np.array([-95, -94, -93, -92, -91]) lat = np.array([43, 42, 41]) data = np.array([[0,4,8,3],[7,3,0,0]]) # you have to write just like here to convert coordinates x,y = m(lon,lat) my_cmap = plt.get_cmap('rainbow') my_cmap.set_under('white') cs = m.pcolormesh(x,y,data,cmap = my_cmap) m.colorbar(cs, extend = 'min') plt.show()
你在转换纬度时弄错了。数组}为空。在
lats
和{代码的另一个问题是
data
必须具有[nx-1,ny-1]的形状才能用pcolormesh
绘制(它在点之间绘制):相关问题 更多 >
编程相关推荐