将直方图从 Pandas 数据框转换为散点图

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

我有一个直方图:

# Lets load a dataset of house prices in Boston. 
from sklearn.datasets import load_diabetes
#sklearn gives you the data as a dictionary, so 
diabetes = load_diabetes(as_frame=True)
data = diabetes['frame']
import matplotlib.pyplot as plt
%matplotlib inline
bmi_hist = plt.hist(data['bmi'], density=False)
bmi_hist = plt.ylabel("Frequency")
bmi_hist = plt.xlabel("Normalized BMI")
bp_hist = plt.hist(data['bp'], density=False)
bp_hist = plt.ylabel("Frequency")
bp_hist = plt.xlabel("Normalized BP")

这是上图中两列的直方图。 我想在散点图中比较这两者。我的尝试不太成功,因为我知道我需要 X 和 Y 来绘制。 我以为我会使用与直方图相同的轴:

y_bmi = data['bmi'].value_counts() # frequency
x_bmi = data['bmi'] # normalized value
ax1 = df.plot.scatter(x = x_bmi, y= y_bmi, c='DarkBlue')

但这只能用于“数据框”,所以我是否必须将 bmi 列的值重复到新的数据框中?还是有更简单的方法?

任何帮助将不胜感激。 非常感谢。

python pandas matplotlib histogram scatter
1个回答
0
投票

这对您的直方图来说更容易实现:

data[['bmi', 'bp']].plot(kind='hist', ec='k', alpha=0.5, figsize=(5, 4))
© www.soinside.com 2019 - 2024. All rights reserved.