一周学会Matplotlib3 Python 数据可视化-绘制直方图(Histogram)
锋哥原创的Matplotlib3 Python数据可视化视频教程:
2026版 Matplotlib3 Python 数据可视化 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili
课程介绍
本课程讲解利用python进行数据可视化 科研绘图-Matplotlib,学习Matplotlib图形参数基本设置,绘图参数及主要函数,以及Matplotlib基础绘图,和Matplotlib高级绘图。
绘制直方图(Histogram)
直方图用于可视化数值数据的分布,通过将数据划分为连续区间(bin)并统计各区间内的数据频数来展示数据特征。
核心函数:plt.hist()
plt.hist(x, # 输入数据(数组或列表)bins=None, # 区间数量/边界range=None, # 数据范围density=False, # 是否归一化为密度color=None, # 颜色alpha=0.75, # 透明度edgecolor='black' # 边缘颜色
)
关键参数详解
参数 | 说明 | 示例值 |
---|---|---|
bins | 区间划分方式 | 10 , [0,10,20,40] , 'auto' |
density | 归一化为概率密度 | True /False |
range | 数据截取范围 | (0, 100) |
histtype | 直方图样式 | 'bar' , 'step' , 'stepfilled' |
log | 对数坐标 | True |
cumulative | 累积直方图 | True |
stacked | 多组数据堆叠 | True |
下面我们看几个直方图示例:
基础直方图:
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
# 设置matplotlib使用黑体显示中文
matplotlib.rcParams['font.family'] = 'Microsoft YaHei'
# 生成正态分布数据
data = np.random.normal(0, 1, 1000)
plt.hist(data, bins=30, color='skyblue', edgecolor='black')
plt.title("基本直方图")
plt.xlabel("值")
plt.ylabel("频率")
plt.grid(axis='y', alpha=0.5)
plt.show()
多组数据对比直方图
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
# 设置matplotlib使用黑体显示中文
matplotlib.rcParams['font.family'] = 'Microsoft YaHei'
data1 = np.random.normal(-1, 1, 1000)
data2 = np.random.normal(3, 1.5, 1000)
plt.hist([data1, data2], bins=30, stacked=False,color=['blue', 'orange'], label=['分组1', '分组2'])
plt.legend()
plt.title("多个数据集")
plt.show()