您如何将熊猫系列2D图形堆叠到3D结构中?

时间:2018-09-29 20:16:03

标签: python pandas plot 3d 2d

我有一些纵向数据,即在一个数据框中构造的115位患者的权重。但是,当我尝试绘制此图时,正如怀疑的那样,所有图形都相互叠加,因此很难理解。

现在,我想绘制每个患者NEXT的各个图,而不是彼此重叠。因此创建了一个3D图。

我尝试过:

fig = plt.figure()
ax = fig.gca(projection='3d')

x = [i for i in range(10)]
for i in range(115):
    y = i
    ax.plot(x, dfm.WOMEN.interpolate(method='linear', limit_area = 'inside').loc[:, i], zs=i, zdir='z')
ax.view_init(elev=-150., azim=1000)

plt.show()

尽管关闭此选项,但权重会投影到y轴上,并且每个患者在z轴上都会增加。让我觉得有点奇怪。

[https://i.stack.imgur.com/wlxNE.png](如此)

有人知道我如何在z轴上投影权重并在y轴上显示我的患者吗?

数据: 例如。 (值已经在下面插入)

患者1: [118.0、111.0、104.0、102.42857142857143、100.85714285714286、99.28571428571429、97.71428571428571、96.14285714285714、94.57142857142857、93.0]

患者2: [108.0、97.0、86.0、75.0、69.0、69.0、69.0、69.0、69.0、69.0]

患者3: [105.0,97.0,89.0,85.0,85.0,85.0,85.0,85.0,85.0,85.0]

患者4: [116.0、103.5、91.0、85.0、85.0、85.0、85.0、85.0、85.0、85.0]

患者5: [112.0,108.57142857142857,105.14285714285714,101.71428571428572,98.28571428571429,94.85714285714286,91.42857142857143,88.0,88.0,88.0]

患者6: [148.0,136.33333333333334,124.66666666666667,113.0,112.0,112.0,112.0,112.0,112.0,112.0]

患者7: [114.0、111.0、108.0、105.0、101.66666666666667、98.33333333333333、95.0、91.66666666666667、88.33333333333333、85.0]

(为了便于理解,我在列表中格式化了序列,但在我的计算机中,它位于pandas数据框中)

1 个答案:

答案 0 :(得分:1)

我看不到您的数据,因此无法测试此解决方案,但是尝试切换您要传入的内容为yz。像这样:

ax.plot(xs=x, 
        ys=i, 
        zs=dfm.WOMEN.interpolate(method='linear', limit_area='inside').loc[:, i],
        zdir='z')

另外,请注意,您的代码定义了y = i,但实际上从未使用过y