使用matplotlib绘制pandas数据的3D图

时间:2017-11-20 07:43:29

标签: python pandas matplotlib plot

我试图制作一个类似于this的数字。代码就像

fig = plt.figure()
ax = fig.gca(projection='3d')
def cc(arg):
    return mcolors.to_rgba(arg, alpha=0.6)
xs = np.arange(0, data.shape[0])
verts = []
zs = [0.0, 1.0, 2.0, 3.0, 4.0, 5.0]
for idx, value in enumerate(zs):
    ys = data[data.columns[idx]]
    ys[0], ys[-1] = 0, 0
    verts.append(list(zip(xs, ys)))
poly = PolyCollection(verts, facecolors=[cc('r'), cc('g'), cc('b'),
                                         cc('y'), cc('g'), cc('b')])
poly.set_alpha(0.7)
ax.add_collection3d(poly, zs=zs, zdir='y')

ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')

plt.show()

这里的数据是一个数据框,我们想要绘制每一行。但实际上,我无法获得上述代码的任何内容。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

由于您的所有其他代码与示例相同,因此错误必须来自您的编码工具(例如,cterm或jupyter notebook)或您的数据。 我想知道你是否在没有交互后端的情况下使用ssh或jupyter。

答案 1 :(得分:0)

由于可以正确运行原始代码,但不能正确运行提供的代码,因此在运行此代码之前,请检查是否已导入所有正确的库。

from mpl_toolkits.mplot3d import Axes3D
from matplotlib.collections import PolyCollection
import matplotlib.pyplot as plt

如果我运行仅导入pyplot的代码,那么我会得到一个没有任何内容的窗口,这似乎是您遇到的问题。