我有一些纵向数据,即在一个数据框中构造的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数据框中)
最佳答案
在看不到您的数据的情况下,我无法测试此解决方案,但请尝试切换您要传入的y
和z
。就像是:
ax.plot(xs=x,
ys=i,
zs=dfm.WOMEN.interpolate(method='linear', limit_area='inside').loc[:, i],
zdir='z')
另外,请注意,您的代码定义了
y = i
,但实际上从未使用y
。