使用Python绘制正交向量

绘制正交向量


下面是一段使用Python和matplotlib库绘制两个正交向量的代码。

import matplotlib.pyplot as plt
import numpy as np

# 定义两个正交向量
# 向量a的坐标为(1, 0),表示其终点在坐标系中的位置
# 向量b的坐标为(0, 1),表示其终点在坐标系中的位置
a = [1, 0]
b = [0, 1]

# 创建一个新的图形
fig, ax = plt.subplots()

# 在图形中添加坐标轴
ax.set_aspect('equal') # 使x轴和y轴的比例相同,保证向量长度显示正确
ax.grid(True) # 显示网格线,方便观察向量位置

# 绘制向量a和向量b,使用箭头表示向量的方向,使用点表示向量的起点,使用文本表示向量的长度(向量标签)
ax.plot([a[0], b[0]], [a[1], b[1]], 'r-', linewidth=2) # 绘制向量a和向量b的线段
ax.arrow(0, 0, a[0], a[1], head_width=0.05, head_length=0.1, fc='blue', ec='black') # 以(0, 0)为起点,绘制向量a,箭头指向(a[0], a[1])
ax.arrow(0, 0, b[0], b[1], head_width=0.05, head_length=0.1,fc='red', ec='black') # 以(0, 0)为起点,绘制向量b,箭头指向(b[0], b[1])

# 设置x轴和y轴的标签,以及标题
ax.set_xlabel('X') # x轴标签
ax.set_ylabel('Y') # y轴标签
ax.set_title('正交向量',fontproperties='SimHei') # 标题

# 显示图形
plt.show()

代码运行后将显示一个两个向量正交的图形。其中,向量a由点(1, 0)指向点(0, 1),向量b由点(0, 1)指向点(1, 0)。这两个向量的起点都是点(0, 0),终点分别是点(1, 0)和点(0, 1),这正是两个正交向量的特点。

 

代码解读


代码通过Matplotlib库绘制了两个正交向量a和b,并以箭头形式表示,同时设置了坐标轴的比例、网格线、标签和标题,用图形化的方式展示这两个向量的正交关系。

导入必要的库

import matplotlib.pyplot as plt:导入Matplotlib的pyplot模块,用于绘图。pyplot提供了一个类似于MATLAB的绘图系统接口。
import numpy as np:虽然在这个特定的示例中没有直接使用numpy库,但通常在数据分析和科学计算中,numpy是处理数值数据的基础库。

定义向量
a = [1, 0]:定义了一个二维向量a,其x分量为1,y分量为0。
b = [0, 1]:定义了一个二维向量b,其x分量为0,y分量为1。这两个向量是正交的,即它们的点积为0(a·b = 1*0 + 0*1 = 0)。

创建绘图和坐标轴对象
fig, ax = plt.subplots():使用plt.subplots()函数创建一个图形(fig)和一个坐标轴(ax)。这是Matplotlib中常用的绘图方式,方便对图形和坐标轴进行精细控制。

设置坐标轴属性

ax.set_aspect('equal'):设置坐标轴的比例相等,这对于绘制向量尤其重要,以确保向量的长度和方向在视觉上正确表示。
ax.grid(True):显示网格线,这有助于观察向量在坐标系中的位置。

绘制向量

使用ax.plot()函数绘制连接向量起点和终点的线段,但这里主要是为了展示向量的方向,因此实际上这个步骤在视觉上可能被箭头覆盖。
使用ax.arrow()函数绘制带有箭头的向量。这个函数接受起点坐标((0, 0))、向量在x和y方向上的分量(a[0], a[1]和b[0], b[1])、箭头头部宽度(head_width)、箭头头部长度(head_length)、箭头填充颜色(fc)和边缘颜色(ec)。这里,向量a用蓝色和黑色边框表示,向量b用红色和黑色边框表示。

设置坐标轴标签和标题

ax.set_xlabel('X')和ax.set_ylabel('Y')分别设置x轴和y轴的标签。
ax.set_title('正交向量', fontproperties='SimHei')设置图形的标题为“正交向量”,并尝试使用“SimHei”字体来支持中文字符。但需要注意的是,fontproperties='SimHei'可能在某些环境中不起作用,因为Matplotlib默认不支持所有字体。在这种情况下,可以通过设置rcParams来指定字体路径或使用其他方法来确保中文字符正确显示。

显示图形

plt.show()函数调用后,会打开一个窗口显示之前设置的图形。这是Matplotlib中展示图形的常用方式。