Python中基于底图的三维散点图
我试图用python绘制一个烟羽的3D散点图,下面是北美地图。 我尝试过各种方法,但似乎都有失败的地方。 我现在的代码是:Python中基于底图的三维散点图,python,matplotlib-basemap,Python,Matplotlib Basemap,我试图用python绘制一个烟羽的3D散点图,下面是北美地图。 我尝试过各种方法,但似乎都有失败的地方。 我现在的代码是: fig = plt.figure(figsize=(22,4)) ax = Axes3D(fig) M = Basemap(llcrnrlon=-140,llcrnrlat=10,urcrnrlon=-40,urcrnrlat=70, projection='cyl', resolution ='c',area_thresh=100.) ax.add_co
fig = plt.figure(figsize=(22,4))
ax = Axes3D(fig)
M = Basemap(llcrnrlon=-140,llcrnrlat=10,urcrnrlon=-40,urcrnrlat=70,
projection='cyl', resolution ='c',area_thresh=100.)
ax.add_collection3d(M.drawcoastlines(linewidth=0.5))
ax.add_collection3d(M.drawcountries(linewidth=0.5))
ax.add_collection3d(M.drawparallels(np.arange(35,65,5),labels=[1,0,0,0]))
date = save_dir[-10:]
tau = tau_mod.int2tau(date)
dt = tau_mod.tau2time(tau)
q = ax.plot(max_x, max_y, max_z, c = 'black', lw = 3)
y,x=M(y,x)
p = ax.scatter(x,y,z,lw = 0,c = conc ,alpha = 0.75, s = 40,
norm=matplotlib.colors.LogNorm(),vmin = 20,
vmax = 4000, marker = ',',zorder=2)
ax.view_init(azim = a ,elev = e)
cb = fig.colorbar(p)
cb.set_label('CO [ppb]')
cmin , cmax = cb.get_clim()
ticks = np.linspace(cmin,cmax,10)
for t in range(len(ticks)):
ticks[t] = int("%i" % ticks[t])
cb.set_ticks(ticks)
cb.set_ticklabels(ticks)
ax.set_xlabel('Longitude')
ax.set_ylabel('Latitude')
ax.set_zlabel('Altitude [km]')
plt.show()
我遇到的两个主要问题是:
散点图不会出现在地图上-您可以在轴边界之外的距离处看到它。
drawparallels不工作-它显示以下消息:
't=ax.textxlab,yy[n],latlab,水平对齐='right',垂直对齐='center',**kwargs
TypeError:text至少接受5个参数4,前提是“我在2D绘图中使用此命令从未遇到过此问题”
我也尝试过使用ax.plot_surface绘制地图的png图像,但这会导致图像顺序出现问题-无论我使用何种Zorder,它似乎都会在散点图上绘制表面图像
任何帮助都将不胜感激 这看起来至少在一定程度上像是散射函数中缺少了latlon=True