我无法在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)
我明白了:
将其更改为:
ax.plot(xs, ys, zs=z, zdir='x', color=c)
......也没有帮助。它只是在原点的z方向上制作了一条细条。
有什么想法吗?即使有人知道只是旋转整个图形的方法,所以图形在屏幕的平面上会比没有好。
答案 0 :(得分:4)
没有要检查的数据我相信问题是ax.plot
的参数的顺序。试试这个:
ax.plot(xs, z * np.ones(xs.shape), zs=ys, zdir='z', color=c)
因此,您希望2D绘图中的'y'轴是高度,因此zs=ys
。