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

现在,我想为每个患者绘制单独的图形,而不是彼此相邻。因此创建了一个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数据框中)

最佳答案

在看不到您的数据的情况下,我无法测试此解决方案,但请尝试切换您要传入的yz。就像是:

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


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

10-07 15:15