python画二维矩阵图_Python:线性代数-矩阵-绘制向量 (五十)

向量 lab

在此 notebook 中,你将学习如何绘制二维向量和进行某些向量计算。

具体来说:

绘制二维向量

将二维向量与标量相乘并绘制结果

将两个向量相加并绘制结果

对于此 lab,我们将使用 python 软件包 NumPy 创建向量并计算向量运算。对于绘图部分,我们将使用 python 软件包 Matplotlib。

绘制二维向量

对于此部分,我们将绘制定义如下的向量 \(\vec{v}\)。

\(\hspace{1cm}\vec{v} = \begin{bmatrix} 1\ 1\end{bmatrix}\)

下面简要介绍了绘制向量 \(\vec{v}\) 的 Python 代码所包含的部分。

使用 import 方法使 NumPy 和 Matlibplot python 软件包可用。

定义向量 \(\vec{v}\)

使用 Matlibplot 绘制向量 \(\vec{v}\)

创建一个变量 ax 来表示图的坐标轴

使用 ax 和 plot 方法绘出原点 0,0(红点)

使用 ax 和 arrow 方法绘出向量 \(\vec{v}\):蓝色箭头,起点为 0,0

确定 x 轴的格式

使用 xlim 方法设置范围

使用 ax 和 set_xticks 方法设置主要刻度线

确定 y 轴的格式

使用 ylim 方法设置范围

使用 ax 和 set_yticks 方法设置主要刻度线

使用 grid 方法创建网格线

使用 show 方法显示图

# Import NumPy and Matplotlib

%matplotlib inline

import numpy as np

import matplotlib.pyplot as plt

# Define vector v

v = np.array([1,1])

# Plots vector v as blue arrow with red dot at origin (0,0) using Matplotlib

# Creates axes of plot referenced 'ax'

ax = plt.axes()

# Plots red dot at origin (0,0)

ax.plot(0,0,'or')

# Plots vector v as blue arrow starting at origin 0,0

ax.arrow(0, 0, *v, color='b', linewidth=2.0, head_width=0.20, head_length=0.25)

# Sets limit for plot for x-axis

plt.xlim(-2,2)

# Set major ticks for x-axis

major_xticks = np.arange(-2, 3)

ax.set_xticks(major_xticks)

# Sets limit for plot for y-axis

plt.ylim(-1, 2)

# Set major ticks for y-axis

major_yticks = np.arange(-1, 3)

ax.set_yticks(major_yticks)

# Creates gridlines for only major tick marks

plt.grid(b=True, which='major')

# Displays final plot

plt.show()

<

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个使用Matplotlib库绘制二维直角坐标系的线性变换动Python代码示例: ```python import numpy as np import matplotlib.pyplot as plt from matplotlib.animation import FuncAnimation # 定义二维向量 v = np.array([1, 0]) # 定义线性变换矩阵 A = np.array([[1, 1], [2, 1]]) # 定义像显示范围 x_min = -3 x_max = 3 y_min = -3 y_max = 3 # 创建坐标系 fig, ax = plt.subplots() # 绘制坐标系 ax.set_xlim(x_min, x_max) ax.set_ylim(y_min, y_max) ax.set_aspect('equal', adjustable='box') ax.axhline(y=0, color='k') ax.axvline(x=0, color='k') # 绘制原始向量 original, = ax.plot([0, v[0]], [0, v[1]], 'b', label='Original') # 定义更新函数 def update(num): # 计算变换后的向量 transformed = A @ v # 绘制变换后的向量 transformed_line.set_data([0, transformed[0]], [0, transformed[1]]) # 更新原始向量 original.set_label('Original: ' + str(v)) original.set_color('b') # 更新变换后的向量 transformed_line.set_label('Transformed: ' + str(transformed)) transformed_line.set_color('r') # 更新标题 ax.set_title('Linear Transformation: A = ' + str(A)) # 更新例 ax.legend() # 更新向量 v[:] = transformed[:] # 创建变换后的向量线条 transformed_line, = ax.plot([], [], 'r', label='Transformed') # 创建动 ani = FuncAnimation(fig, update, frames=10, interval=1000, repeat=True) # 显示动 plt.show() ``` 代码说明: 1. 定义二维向量 `v` 和线性变换矩阵 `A` 2. 创建坐标系和原始向量 `original` 3. 定义更新函数 `update`,用于更新变换后的向量 4. 在更新函数中计算变换后的向量 `transformed`,并更新原始向量和变换后的向量 5. 创建变换后的向量线条 `transformed_line` 6. 创建动 `ani`,并通过调用 `plt.show()` 显示动 此代码示例可以根据需要进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值