一周学会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()
相关推荐
方也_arkling5 小时前
【Java-Day08】static / final / 枚举
java·开发语言
风吹夏回6 小时前
Python 全局异常处理:从“满屏 try-except”到优雅兜底
开发语言·python
Chengbei116 小时前
一站式源码安全检测工具、云安全 / APP / 小程序源码敏感信息递归多层目录扫描AK、JWT、手机号、身份证等敏感信息
java·开发语言·安全·web安全·网络安全·系统安全·安全架构
llz_1126 小时前
web-第一次课后作业
java·开发语言·idea
小熊Coding6 小时前
Python爬取当当网二手图书项目实战!
开发语言·爬虫·python·beautifulsoup·requests·二手图书
秋96 小时前
Java项目运行5天左右自动宕机:系统性定位与解决方案
java·开发语言·python
小江的记录本6 小时前
【JVM虚拟机】垃圾回收GC:垃圾收集器:CMS:核心原理、回收流程、优缺点、废弃原因(附《思维导图》+《面试高频考点清单》)
java·jvm·后端·python·spring·面试·maven
xiaoshuaishuai86 小时前
C# 内存管理与资源泄漏
开发语言·c#
lsx2024067 小时前
SVN 检出操作
开发语言
田里的水稻7 小时前
OE_ubuntu26.04与宿主机之间复制粘贴内容
人工智能·python·机器人