阅读时间约 7 分钟

Matplotlib

绘图基础与常见图表示例

Posted by LuckyE on June 29, 2025
Python Matplotlib

Matplotlib

导入库

import matplotlib.pyplot as plt

基础绘制

绘制直线

#从(0,0)到(6,250)的线段
xpoints = np.array([0, 6])
ypoints = np.array([0, 250])
plt.plot(xpoints, ypoints)
plt.show()

image.png

无线绘图

plt.plot(xpoints, ypoints, 'o')
plt.show()

image.png

多点

#多点,从(1,3) 到(2,8) 到(6,1) 到(8,10)
xpoints = np.array([1, 2, 6, 8])
ypoints = np.array([3, 8, 1, 10])
plt.plot(xpoints, ypoints)
plt.show()

image.png

默认X点

如果我们不指定×轴上的点,它们将获得默认值0、1、2、3(等等,取决于y点的长度。

#默认X点
ypoints = np.array([3, 8, 1, 10, 5, 7])
plt.plot(ypoints)
plt.show()

image.png

标记

ypoints = np.array([3, 8, 1, 10, 5, 7])
plt.plot(ypoints, marker='o', markerfacecolor='red', markersize=10, color='skyblue', linewidth=4)
plt.title('Marker Example')
plt.show()

plt.plot(ypoints, 'o:r') # 'o'表示圆形标记,':r'表示红色虚线
plt.show()

其他图

# 条形图示例
x = np.array(['A', 'B', 'C', 'D', 'E'])  # 定义x轴标签
y = np.array([3, 8, 1, 10, 5])  # 定义y轴数据
plt.bar(x, y, color='skyblue', width=0.4)  # 绘制竖直条形图,设置颜色和宽度
plt.show()  # 显示图形

# 水平条形图示例
plt.barh(x, y, color='skyblue', height=0.4)  # 绘制水平条形图,设置颜色和高度
plt.show()  # 显示图形

# 直方图示例
#一共250个数据点,平均值170,标准差10
x = np.random.normal(170, 10, 250)  # 生成250个均值为170、标准差为10的正态分布数据
print(x)  # 打印生成的数据
plt.hist(x, color='skyblue')  # 绘制直方图,设置颜色
plt.show()  # 显示图形

# 散点图示例
x = np.random.normal(170, 10, 250)  # 生成x轴数据
y = np.random.normal(170, 10, 250)  # 生成y轴数据
plt.scatter(x, y, color='skyblue')  # 绘制散点图,设置颜色
plt.title('Scatter Plot Example')  # 设置图表标题
plt.xlabel('X-axis')  # 设置x轴标签
plt.ylabel('Y-axis')  # 设置y轴标签
plt.show()  # 显示图形

# 饼图示例
labels = ['Apple', 'Banana', 'Cherry', 'Date']  # 定义饼图标签
sizes = [15, 30, 45, 10]  # 定义每个扇区的大小
explode = (0.1, 0, 0, 0)  # 突出显示第一个扇区
plt.pie(sizes, explode=explode, labels=labels, shadow=True, autopct='%1.1f%%')  # 绘制饼图,设置突出、标签、阴影和百分比显示
plt.axis('equal')  # 确保饼图为圆形
plt.legend(title = "Four") # 添加图例并设置标题
plt.show()  # 显示图形


Testimonials

What readers say

先看读者反馈,再直接在当前页面继续讨论。公共留言需要 Waline 服务端;配置后访客只填昵称即可发布。

这类长文如果结构清楚,我会一路读到底。这里最好的地方是把概念、公式和代码示例放在同一篇里。

L
Lin 算法读者

数据库和工程文档的风格很实用,截图、SQL 和说明都能直接拿去复盘项目。

M
Mia 工程笔记党

强化学习相关文章密度很高,但排版如果更清楚,回看体验会更好。这个新版方向是对的。

R
Ryo 深夜学习者

我更喜欢能快速扫到标签、修改时间和文章重点的首页,现在这种卡片视图会比纯列表更容易选读。

C
Chen 知识整理控

代码块只要语言标识和层级做好,技术博客的专业感会立刻上来。

A
Ava 前端同行

评论区不用社交账号强绑定会更愿意留言,尤其是这种偏学习记录的网站。

N
Noah 匿名访客

Quick Identity

Pick a preset and leave a note

留言方式:先选择一个预设身份,再在下方输入评论。当前若显示“需要配置 Waline”,说明站点还缺少可写评论后端。

当前未选择预设身份

Live Discussion Waline 配置完成后,真实评论会加载在下方,移动端和主题切换会同步处理。
WALINE
Loading comments…