根据列选择色调

问题描述 投票:0回答:1

具有预测(列)和实际(列)值的 DF。我想绘制一个与使用 hue 属性时外观相同的叠加直方图。如果不重建我的原始数据,我找不到这样做的方法。

这是我正在尝试做的一个例子:

df = pd.DataFrame({'A':np.random.uniform(low=0.0, high=9.0, size=(150,)),'P':np.random.uniform(low=0.0, high=9.0, size=(150,))})
actual = df.A.to_frame()
predicted = df.P.to_frame()

print(df.head())

actual.columns = ['value']
actual['t'] = 'A'

predicted.columns = ['value']
predicted['t'] = 'P'
tmp = pd.concat([actual,predicted])

print(tmp.head())

sns.histplot(data=tmp,x='value' ,hue="t")

Output:
Original DF
          A         P
0  2.546046  2.503833
1  4.797077  2.306720
2  1.358222  4.839675
3  7.063206  8.828486
4  3.010978  7.406337

Manipulated DF
      value  t
0  2.546046  A
1  4.797077  A
2  1.358222  A
3  7.063206  A
4  3.010978  A
<matplotlib.axes._subplots.AxesSubplot at 0x7fd657112fd0>

问: 我如何在不操纵我的原始 DF 的情况下得到类似的结果?

python seaborn histogram
1个回答
2
投票

除非我误解了你的要求。

来自docs

如果

x
y
都没有赋值,则数据集被视为宽格式,并为每个数字列绘制直方图

df = pd.DataFrame(
    {
        "A": np.random.uniform(low=0.0, high=9.0, size=(150,)),
        "P": np.random.uniform(low=0.0, high=9.0, size=(150,)),
    }
)
ax = sns.histplot(df)

© www.soinside.com 2019 - 2024. All rights reserved.