直方图与密度图的结合图
关系数据的可视化(直方图+密度图)
实验数据
本实验所用数据为1960年世界各国的出生率( birth-rate.csv)。
实验代码
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
plt.rcParams['font.sans-serif'] = ['SimHei'] # 解决中文不能正常显示的问题
titanic = pd.read_csv("birth-rate.csv")
titanic.dropna(subset=['1960'], inplace=True)
plt.style.use('ggplot')
# 绘制直方图,bins指定分段数目,color指定颜色,edgecolor指定边的颜色,label设置图例名称,density对y轴数据进行标准化
plt.hist(titanic['1960'].apply(lambda x: round(x, 1)),
bins=np.arange(round(titanic['1960'].min()) - 1,
round(titanic['1960'].max()) + 2, 2),
density=True, color='steelblue', edgecolor='k')
plt.title('1960世界各国人口出生率直方图和密度图')
plt.xlabel('出生率')
plt.ylabel('频率')
kde = mlab.GaussianKDE(titanic['1960']) # 获取数值对应的比例
# 密度图
# np.linspace在指定的间隔内返回均匀间隔的数字s
# start指定序列的起始点,stop指定序列的结束点
# num是生成的样本数,默认是50,必须是非负
x2 = np.linspace(titanic['1960'].min(), titanic['1960'].max(), 1000)
line2 = plt.plot(x2, kde(x2), 'g-', linewidth=2) # -g是设置为绿色的实线,相当于color='green',linestyle='-'
plt.tick_params(top='off', right='off') # 更改刻度、刻度标签和网格线的外观
plt.show()
实验结果图


浙公网安备 33010602011771号