Python Matplotlib绘图基础:从折线图到饼图的完整指南

一只小鹿
一只小鹿
发布时间:2026-10-14 | 4人浏览过
原创

本文详细介绍Python中Matplotlib库的基础用法,涵盖折线图的线条颜色、标记形状与线型设置,以及标签和图例的添加方法。同时深入讲解子图(Subplot)的创建、散点图(Scatter)的关键参数如颜色与形状指定,并演示直方图和饼图的绘制技巧,帮助开发者快速掌握数据可视化核心技能。

一、前言

Matplotlib作为Python生态中强大的绘图库,不仅功能丰富,还具备跨平台兼容性,并与Jupyter Notebook环境有着极佳的集成效果。

二、线型图


import matplotlib.pyplot as plt
import numpy as np

# 指定生成随机数的种子,这样每次运行得到的随机数都是相同的
np.random.seed(42)
# 生成30个满足平均值为0、方差为1的正态分布的样本
x = np.random.randn(30)
# plot本意有“绘制(图表)”的意思,所以下面这一行代码是绘制图表。r指定绘制的线条颜色为红色,o指定标记实际点使用的形状为圆形,--指定线条形状为虚线
plt.plot(x, "r--o")
# 显示图表
plt.show()

三、线条颜色、标记形状和线型

在绘制线条时,常用的颜色参数如下:

  • “b”:代表蓝色。
  • “g”:代表绿色。
  • “r”:代表红色。
  • “c”:代表蓝绿色(青色)。
  • “m”:代表洋红色。
  • “y”:代表黄色。
  • “k”:代表黑色。
  • “w”:代表白色。

用于指定数据点标记形状的常用参数包括:

  • “o”:表示圆形标记。
  • “*”:表示星形标记。
  • “+”:表示加号标记。
  • “x”:表示x形标记。

定义线条样式的常用参数有:

  • “-”:表示实线。
  • “–”:表示虚线。
  • “-.”:表示点划线。
  • “:”:表示点线。

import matplotlib.pyplot as plt
import numpy as np

# 未指定种子的值,所以最终产生的随机数不同
# randn()生成30个满足平均值为0、方差为1的正态分布的样本
a = np.random.randn(30)
b = np.random.randn(30)
c = np.random.randn(30)
d = np.random.randn(30)

# a:红色,虚线,圆形;b:蓝色,实线,星号;c:绿色,点实线,加号;d:洋红色,点线,x形状
plt.plot(a, "r--o", b, "b-*", c, "g-.+", d, "m:x")
plt.show(

四、标签和图例

为了提升图表的可读性,通常需要添加轴标签和图例进行说明,具体实现可参考以下示例:


import matplotlib.pyplot as plt
import numpy as np

np.random.seed(42)
x = np.random.randn(30)
y = np.random.randn(30)

# 图表标题
plt.title("Example")
# 图表标签
plt.xlabel("X")
plt.ylabel("Y")

# X, Y后面的逗号去掉会报出警告
X, = plt.plot(x, "r--o")
Y, = plt.plot(y, "b-*")
# 图例显示(显示图片右上角的图例)
# legend()有两个列表参数,第一个列表参数是图中实际使用的标记和线性,第二个列表参数是对应图例的文字描述
# legend本意:传奇、图例、解释、说明,这里是图例的意思
plt.legend([X, Y], ["X", "Y"])

plt.show()

五、子图

若需在同一个窗口中不同位置展示多个图像,可以使用子图(Subplot)功能来实现。


import matplotlib.pyplot as plt
import numpy as np

# 未指定随机数种子的值
a = np.random.randn(30)
b = np.random.randn(30)
c = np.random.randn(30)
d = np.random.randn(30)

# 定义一个实例fig,相当于子图最外面的大图
fig = plt.figure()
# 向fig实例中添加需要的子图,前两个参数表示把大图分成了2行2列,最后一个参数表示使用哪一张子图进行绘制
ax1 = fig.add_subplot(2, 2, 1)
ax2 = fig.add_subplot(2, 2, 2)
ax3 = fig.add_subplot(2, 2, 3)
ax4 = fig.add_subplot(2, 2, 4)

# 设置图例
A, = ax1.plot(a, "r--o")
ax1.legend([A], ["A"])
B, = ax2.plot(b, "b-*")
ax2.legend([B], ["B"])
C, = ax3.plot(c, "g-.+")
ax3.legend([C], ["C"])
D, = ax4.plot(d, "m:x")
ax4.legend([D], ["D"])

plt.show()

六、散点图

当需要展示散点数据的分布与布局时,可以使用散点图(Scatter)进行可视化。


import matplotlib.pyplot as plt
import numpy as np

# 设置随机数种子的值
np.random.seed(42)
x = np.random.randn(30)
y = np.random.randn(30)

# 散点图,scatter()的参数必须同时含有x, y
plt.scatter(x, y, c = 'g', marker='o', label = "(X, Y)")
# 散点图的标题
plt.title("Example")
# 设置坐标轴的标签
plt.xlabel("X")
plt.ylabel("Y")
# 设置图例,loc=0表示使用最好的位置,loc=1强制图例使用图中右上角的位置,loc=2强制使用左上角位置,loc=3强制使用左下角位置,loc=4强制使用右下角位置
plt.legend(loc = 1)

# 显示图像
plt.show()


在使用scatter()方法时,需重点关注以下参数:

  • “c”:用于指定散点的颜色,其取值规则与第2部分中的线条颜色参数一致,例如“g”代表绿色。
  • “marker”:用于指定散点的形状,规则同第2部分中的标记形状参数,例如“o”代表圆形。
  • “label”:用于指定散点对应的图例文本,此处用法与第3部分中的图例设置有所区别,需注意区分。

七、直方图

直方图(Histogram)是一种统计图表,通过一系列高度不等的纵向条纹或矩形来展示数据分布情况,通常横轴表示数据类型,纵轴表示分布频率。具体实例如下:


import matplotlib.pyplot as plt
import numpy as np

# 指定随机数种子的值
np.random.seed(42)
x = np.random.randn(1000)

# 直方图,bins表示绘制的直方图的条纹的数量;color表示直方图条纹的颜色,g表示绿色
plt.hist(x, bins = 20, color = 'g')
# 设置标题
plt.title("Example")
# 设置坐标轴标签
plt.xlabel("X")
plt.ylabel("Y")

# 显示图像
plt.show()

八、饼图


import matplotlib.pyplot as plt

# 标签
labels = ['Dos', 'Cats', 'Birds']
# sizes的三个数字确定了每部分数据系列在整个圆形中的占比
sizes = [15, 50, 35]

# 饼图,explode定义每部分数据系列之间的间隔,设置两个0和一个0.1,就能突出第三部分;autopct将sizes中的数据以所定义的浮点数精度进行显示;
# startangle是绘制第一块饼图时,该饼图与X轴正方向的夹角度数,这是设置90度,默认是0度。
plt.pie(sizes, explode = (0, 0, 0.1), labels = labels, autopct = '%1.1f%%', startangle = 90)
# 下面的一行代码必须存在,用于使X轴和Y轴的刻度时刻保持一致,只有这样,最后得到的饼图才是圆的
plt.axis('equal')

# 显示图像
plt.show()

至此,关于Python绘图库Matplotlib基本用法的介绍已完成。如需了解更多Python Matplotlib相关内容,可查阅本站过往文章或继续浏览后续教程,感谢大家的支持!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表