【发布时间】:2018-06-13 04:57:24
【问题描述】:
这是有问题的图表,点应该出现在 底部平面中,而不是像我想的那样“高于”平面。
bx.scatter(xs,ys,zs, zdir=zs,c=plt.cm.jet(np.linspace(0,1,N))) # scatter points
for i in range(N-1):
bx.plot(xs[i:i+2], ys[i:i+2], zs[i:i+2], color=plt.cm.jet(i/N), alpha=0.5)
#plots the lines between points
bx.scatter(xs,ys,zs=732371.0,zdir="z",c=plt.cm.jet(np.linspace(0,1,N)),depthshade=True)
bx.set_zlim3d(732371.0,) #limit is there so that we can project the points onto the xy-plane
你会注意到这些点是在 xy 网格上方绘制的,我必须为 z 轴设置一个下限,以便第一个投影点不会干扰第一个散点
我希望这些点是 2d 的,并且不那么 hacky,因为我有 50 个其他图表来做这样的事情,而对每个图表进行微调会很麻烦。
有更简单的方法要分享吗?
【问题讨论】:
-
为什么不把 Z 坐标设置为零?
-
因为 z 轴采用日期时间格式,如果我输入 0,则表示“从 1970 年开始 z 轴”,并且无法读取图表。如果我没记错的话,这就是我使用 2006-03-01 的 732371.0 的原因
标签: python matplotlib 3d scatter-plot