直方图与密度图的结合图

关系数据的可视化(直方图+密度图)

实验数据

本实验所用数据为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()

实验结果图

在这里插入图片描述

posted @ 2022-06-06 16:28  星月故里yw  阅读(148)  评论(0)    收藏  举报