Python matplotlib绘制图形实例(包括点,曲线,注释和箭头)
本文通过Python的matplotlib模块,演示如何绘制包含曲线、离散点、注释文本及箭头的图形。详细解析了plt.plot、plt.annotate、plt.quiver等核心函数的参数用法,以及坐标轴范围设置和子图创建方法,帮助开发者快速掌握基础绘图技巧。
matplotlib图形绘制概述
Python的matplotlib模块具备强大的图形绘制功能。本文将使用pyplot模块绘制一个包含曲线、曲线上的点、注释文本以及指向点的箭头的简单图形示例。
1. 结果预览:

2. 代码如下:
from matplotlib import pyplot as plt
import numpy as np
# 绘制曲线
x = np.linspace(2, 21, 20) # 取闭区间[2, 21]之间的等差数列,列表长度20
y = np.log10(x) + 0.5
plt.figure() # 添加一个窗口。如果只显示一个窗口,可以省略该句。
plt.plot(x, y) # plot在一个figure窗口中添加一个图,绘制曲线,默认颜色
# 绘制离散点
plt.plot(x, y, '.y') # 绘制黄色的点,为了和曲线颜色不一样
x0, y0 = 15, np.log10(15) + 0.5
plt.annotate('Interpolation point', xy=(x0, y0), xytext=(x0, y0 - 1), arrowprops=dict(arrowstyle='->')) # 添加注释
for x0, y0 in zip(x, y):
plt.quiver(x0, y0 - 0.3, 0, 1, color='g', width=0.005) # 绘制箭头
x = range(2, 21, 5)
y = np.log10(x) + 0.5
plt.plot(x, y, 'om') # 绘制紫红色的圆形的点
x0, y0 = 7, np.log10(7) + 0.5
plt.annotate('Original point', xy=(x0, y0), xytext=(x0, y0 - 1), arrowprops=dict(arrowstyle='->'))
for x0, y0 in zip(x, y):
plt.quiver(x0, y0 + 0.3, 0, -1, color='g', width=0.005) # 绘制箭头
# 设置坐标范围
plt.xlim(2, 21) # 设置x轴范围
plt.xticks(range(0, 23, 2)) # 设置X轴坐标点的值,为[0, 22]之间的以2为差值的等差数组
plt.ylim(0, 3) # 设置y轴范围
# 显示图形
plt.show() # 显示绘制出的图
核心函数与参数解析
3. 代码解析
1)首先导入matplotlib模块中的pyplot类,主要使用其中提供的方法。同时导入numpy库以生成数列。为了方便调用,分别将pyplot和numpy设置为别名plt和np。
2)使用np.linspace(start, stop, num)函数,可生成闭区间[start, stop]内长度为num的等差数列数组。本例中利用该函数生成插值点用于显示。
3)plt.figure()用于创建绘图窗口。如果所有图形绘制在同一个窗口中,该语句可以省略,因为系统会默认创建figure(1)。
若需添加额外的绘图窗口,可再次调用plt.figure()。此时plt.figure(num)的窗口序号num会自动递增。
4)plt.plot()用于向窗口中绘制曲线,需传递x和y参数,分别代表横轴和纵轴数据。
多绘图区域与子图设置
本例中所有图形绘制在同一个绘图区域里。若希望添加2个绘图区域,可参考以下代码:
x = np.linspace(2, 21, 20)
y1 = np.log10(x) + 0.5
y2 = np.log10(x) + 1
plt.subplot(211)
plt.plot(x, y1)
plt.subplot(212)
plt.plot(x, y2)
plt.show()
使用plt.subplot(rows, cols, figurenum)添加子绘图区域,参数含义分别为:将窗口划分为rows行cols列的绘图区域,figurenum表示当前是第几个绘图区域。例如plt.subplot(211)等同于plt.subplot(2, 1, 1),当绘图区域数小于10时可省略逗号。创建的图形效果如下:

5)plt.plot(x, y, '.y'):增加该语句是为了让点的颜色与曲线颜色区分开来。'.y'表示仅绘制点,颜色为黄色。
注释与箭头绘制详解
6)plt.annotate(s, xy, xytext):用于添加注释,除s、xy外,还有若干可选参数。
s:注释文本内容,
xy:指定被注释的(x,y)坐标点,
xytext:可选参数,指定文本放置的(x,y)坐标点。若未指定,则默认为xy注释点位置。
arrowprops:可选参数,以字典形式指定,用于在xy坐标和xytext之间绘制指定形状的箭头。本例中指定了'->'类型的箭头,箭头头部宽和高分别为0.2和0.4。
7)plt.quiver(X, Y, U, V, C, **kw):用于绘制二维箭头,其中X, Y, C参数可以缺失。
X, Y:定义箭头的位置,
U, V:表示箭头的方向向量,
C:设置箭头的颜色,
**kw中包含一系列其他参数,包括单位、箭头角度、箭头头部宽高设置等。本例中设置了颜色color和箭头的轴宽度width。
如果已经设置了C参数,再设置color参数将不生效。
既然有C参数,为何还需要color可选设置?此疑问暂时保留,尚未找到明确解释。
坐标轴控制与显示
8)plt.xlim(min, max) / plt.ylim(min, max):用于设置x轴和y轴的显示范围。
9)plt.xticks():用于设置x轴坐标点的值。如果plt.xlim和plt.xticks设置的范围不一致,最终显示以最后设置的范围为准。
10)plt.show():最后调用此语句,以显示绘制好的图形。
以上关于Python matplotlib绘制图形(包括点、曲线、注释和箭头)的实例分享完毕,希望能为大家提供参考,也希望大家多多支持本站。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













