Matplotlib Z方向

3

我在matplotlib中无法完成一个图表。以下是代码:

arrays_k, arrays_v = splitbyrecordcount(ycsb[2])
checktype = [ "Update", "Read", "Verification" ]

fig = plt.figure()
ax = fig.add_subplot('111', projection='3d')

for z in [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]:
    xs = arrays_k[z]
    ys = arrays_v[z]
    c = colmap.spectral(z/10.,1)
    ax.plot(xs, ys, zs=z, zdir='z', color=c)

它产生了这个:

正确但顺序错误

我想要一个你可能期望的时间图:更多地“在屏幕”平面上,而不是像上面图片中那样“垂直”于它。我尝试了很多不同的ax.plot()组合,但如果我将其更改为:

ax.plot(xs, ys, zs=z, zdir='y', color=c)

我明白这个意思:

what

修改成下面的样子:
ax.plot(xs, ys, zs=z, zdir='x', color=c)

这也没有帮助。它只是在原点沿着z轴生成了一条薄的条形图。

有什么想法吗?即使有人知道一种方法,可以将整个图旋转,使绘图在屏幕平面上,也比没有好。

1个回答

4

没有数据来检查,但我认为问题在于ax.plot参数的顺序。请尝试以下操作:

ax.plot(xs, z * np.ones(xs.shape), zs=ys, zdir='z', color=c)

所以,您希望在二维图中,'y'轴表示高度,因此zs=ys

杰出。问题已解决。这是为我的论文,截止时间还有18小时。你是我的英雄!<3 - eggonlegs
很高兴能帮到你!祝你的论文好运! - jorgeca

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接