我有一个直方图:
# 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 列的值重复到新的数据框中?还是有更简单的方法?
任何帮助将不胜感激。 非常感谢。
这对您的直方图来说更容易实现:
data[['bmi', 'bp']].plot(kind='hist', ec='k', alpha=0.5, figsize=(5, 4))