我有一个histogram:
# 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')
但是这只能在'dataframe'上使用,所以我必须将bmi列的值重复到新的dataframe中吗?或者有更简单的方法吗?
任何帮助将不胜感激非常感谢。
1条答案
按热度按时间lmvvr0a81#
data'bmi','bp'.plot(kind='hist',ec='k',alpha=0.5,figsize=(5,4))是一个更容易实现的直方图。