如何制作带有颜色标记的3D散点图?

6

我有四个列:性别、体重、身高、年龄。我需要使用matplotlib或seaborn构建一个3D散点图,其中x轴=体重,y轴=身高,z轴=年龄,并用不同的颜色标记性别。 我只能做出2D散点图如下所示:

sns.scatterplot(x = 'height', y = 'age',hue='sex',data=df, palette=['blue',"pink"])

但是无法弄清楚如何添加Z轴。

1个回答

12

你需要使用Matplotlib进行此操作,我认为在Seaborn中没有3D散点图的选项:

import matplotlib.pyplot as plt
from matplotlib import cm
import numpy as np
import pandas as pd

df = pd.DataFrame({'height':np.random.uniform(160,190,20),
                   'weight':np.random.uniform(60,80,20),
                   'age':np.random.randint(20,60,20),
                   'sex':np.random.choice(['M','F'],20)
                  })

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

for s in df.sex.unique():
    ax.scatter(df.height[df.sex==s],df.weight[df.sex==s],df.age[df.sex==s],label=s)
    
ax.legend()

在此输入图片描述


谢谢!它有效了!但是还有一个问题,我怎么改变颜色? - jamesss

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接