Python使用Matpoltlib绘制直方图展现分布情况

92 阅读1分钟

引入依赖

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
from scipy.stats import norm

显示中文、负号和字体大小

plt.rcParams['font.sans-serif'] = ['SimHei']  # 指定默认字体
plt.rcParams['axes.unicode_minus'] = False  # 解决负号'-'显示为方块的问题
plt.rcParams['font.size'] = 18

两个变量之间的相关性

变量间的相关性: 两个变量:散点图 => 3个变量 => 第3个是类别型:设置不同颜色、形状 =>第3个是数值型:气泡图 多个变量 -> 两两之间比较:散点图矩阵 —>同时比较:雷达图

数据预处理

data = pd.read_csv('./study_performance.csv')
data['average_score'] = data[['math_score', 'reading_score', 'writing_score']].mean(axis=1)
print(data.to_string())

plt.hist(data['average_score'], range=(0, 100), density=True, bins=30, edgecolor='w', linewidth=1)
# 获得拟合参数
mean = np.mean(data['average_score'])
sigma = np.std(data['average_score'])

x = np.linspace(0, 100, num=200)
y = norm.pdf(x, mean, sigma)

绘制饼图

plt.plot(x, y, c='r', ls='--', lw=3)

plt.title('平均分分布情况')
plt.ylabel('频数')
# 隐藏右上边框
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)

plt.show()

效果图

直方图+拟合线.png