以下是专为Python新手设计的直方图与饼图学习内容,包含基础知识、代码演示及注意事项:
一、直方图(Histogram)
1. 直方图的作用
- 展示数据分布情况(如年龄分布、成绩分布)
- 观察数据集中趋势、离散程度
2. plt.hist() 核心参数
import matplotlib.pyplot as plt
import numpy as np
# 生成示例数据(1000个正态分布随机数)
data = np.random.randn(1000)
# 基础直方图
plt.hist(data,
bins=20, # 柱子数量(或自定义区间列表)
color='skyblue',# 柱子颜色
alpha=0.7, # 透明度
edgecolor='black') # 边框颜色
# 添加标注
plt.title('数据分布直方图')
plt.xlabel('数值范围')
plt.ylabel('频数')
plt.grid(axis='y', alpha=0.5)
plt.show()
3. 常用进阶参数
density=True
:显示概率密度(代替频数)histtype='step'
:阶梯状直方图range=(min,max)
:限定数据范围
二、饼图(Pie Chart)
1. 饼图的作用
- 展示各部分占整体的比例(如市场份额、开支分类)
2. plt.pie() 核心参数
# 示例数据
labels = ['A', 'B', 'C', 'D']
sizes = [15, 30, 45, 10]
colors = ['gold', 'yellowgreen', 'lightcoral', 'lightskyblue']
plt.pie(sizes,
labels=labels, # 添加标签
colors=colors, # 自定义颜色
autopct='%1.1f%%', # 显示百分比格式
startangle=90, # 起始角度
explode=(0, 0.1, 0, 0),# 突出第二部分
shadow=True) # 添加阴影
# 保证圆形比例
plt.axis('equal')
plt.title('示例饼图')
plt.show()
3. 关键参数说明
explode
:各部分突出程度(0表示不突出)textprops
:调整标签文字样式(如字体大小)wedgeprops
:调整扇形属性(如边框宽度)
三、避坑指南
-
直方图常见问题
- 数据需要是一维数组
bins
数量过多/过少会导致图形难以解读- 分类数据建议使用条形图代替
-
饼图注意事项
- 分类不宜过多(建议≤6类)
- 确保各块比例总和为100%
- 重要部分尽量放在12点钟方向
四、综合练习
# 直方图+饼图组合示例
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12,5))
# 直方图
ax1.hist(np.random.randint(0,100,200), bins=10, color='teal')
ax1.set_title('分数分布')
# 饼图
sizes = [25, 35, 40]
ax2.pie(sizes, labels=['A','B','C'], autopct='%1.0f%%',
colors=['#ff9999','#66b3ff','#99ff99'])
ax2.set_title('品类占比')
plt.tight_layout()
plt.show()
五、学习建议
- 先尝试修改示例中的数值和颜色
- 用自己感兴趣的数据集做练习
- 使用
plt.subplots()
创建多图对比不同参数效果
掌握这些内容后,可以继续学习:
- 箱线图(plt.boxplot())
- 定制化样式(修改字体、添加图例)
- 三维图表绘制