文章目录

  • 构造矢量场的 x 方向的分量
  • 构造矢量场的 y 分量
  • 矢量场中的向量相减
    • 任选图中两点组成一个矢量
    • 可视化矢量图和被减的矢量
    • 对矢量图的每个点减去矢量 VVV
  • 对最终的矢量图的每个像素点值
    • 将每个像素位置的值进行可视化
    • 对符合某些条件的像素点进行筛选
  • 操作和演示环境:jupyter notebook

构造矢量场的 x 方向的分量

  • 构造矢量图的大小是 20×3020 × 3020×30
import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline
x_grid = np.arange(0,30,1)
x_grid = np.tile(x_grid,(20,1))
x_grid.shape
(20, 30)
x_grid
array([[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29],[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29],[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29],[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29],[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29],[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29],[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29],[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29],[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29],[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29],[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29],[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29],[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29],[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29],[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29],[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29],[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29],[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29],[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29],[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]])
plt.imshow(x_grid)

构造矢量场的 y 分量

y_grid_ = np.arange(0,20,1)
y_grid_ = np.tile(y_grid_,(30,1))
plt.imshow(y_grid_)

y_grid = y_grid_.transpose([1,0])
plt.imshow(y_grid)   # 转置之后才是真正的 y 分量

plt.quiver(x_grid,y_grid,1,-1,x_grid+y_grid)
'''
参数的意义分别是
plt.quiver(X,Y,U,V,C)
- X,Y 表示每一个像素点对应的单位向量的起始点位置
- U,V 共同表示了每个像素点上的单位向量,这里我们用 1,-1 代表的是对一个点 p 他的单位向量 v 的方向是朝右下方的
- C 是颜色 cmap,他的值的大小表示了当前像素点的向量的值的大小,值越大,单位向量的颜色越深,表示这个点的向量的模越大
- 例如本图中右下角的点 p = (30,30),他的 模就是 np.linalg.norm((30,30)) = 42.4264 但是在图中的每个像素上的向量都是用
单位向量表示,因此想表示这个向量的模就要用颜色的深浅来表示
'''
plt.ylim((20,0))
plt.colorbar()

矢量场中的向量相减

  • 构造一个简单的矢量 (x1,y1x_1,y_1x1​,y1​)
  • 让整个矢量图中的所有矢量和这个矢量做差

任选图中两点组成一个矢量

points_x = np.array([10,20])
points_y = np.array([18,24])
v = points_y - points_x
v
array([8, 4])

可视化矢量图和被减的矢量

# 得到 v 的单位向量
unit_v = v / np.linalg.norm(v)
print(unit_v)
plt.scatter(x=v[0],y=v[1],color="red")
plt.quiver(x_grid,y_grid,1,-1,x_grid+y_grid)
plt.ylim((20,0))
plt.quiver(v[0],v[1],unit_v[0],unit_v[1],color="blue")
[0.89442719 0.4472136 ]

对矢量图的每个点减去矢量 VVV

new_x_grid = x_grid - v[0]
new_y_grid = y_grid - v[1]
plt.ylim((15.5,-4.5))
plt.quiver(new_x_grid,new_y_grid,new_x_grid   ,new_y_grid,1)  # 在这里我们只在图上用 XYUV 区分了相减后每个矢量的位置和方向,# 但是由于没有设定固定的矢量值的计算规则,所以我们在这里用一个固定值# 进行表示new_x_grid.shape
(20, 30)

对最终的矢量图的每个像素点值

  • 在这里我们设定的规则是:每个像素点的值等于于他在 向量 VVV 方向上的值
  • 即对 VVV 的单位向量 vvv 和矢量图上每个像素点位置的矢量做 点积 运算
product_values = unit_v[0] * new_x_grid + unit_v[1] * new_y_gridproduct_values
array([[-8.94427191, -8.04984472, -7.15541753, -6.26099034, -5.36656315,-4.47213595, -3.57770876, -2.68328157, -1.78885438, -0.89442719,0.        ,  0.89442719,  1.78885438,  2.68328157,  3.57770876,4.47213595,  5.36656315,  6.26099034,  7.15541753,  8.04984472,8.94427191,  9.8386991 , 10.73312629, 11.62755348, 12.52198067,13.41640786, 14.31083506, 15.20526225, 16.09968944, 16.99411663],[-8.49705831, -7.60263112, -6.70820393, -5.81377674, -4.91934955,-4.02492236, -3.13049517, -2.23606798, -1.34164079, -0.4472136 ,0.4472136 ,  1.34164079,  2.23606798,  3.13049517,  4.02492236,4.91934955,  5.81377674,  6.70820393,  7.60263112,  8.49705831,9.39148551, 10.2859127 , 11.18033989, 12.07476708, 12.96919427,13.86362146, 14.75804865, 15.65247584, 16.54690303, 17.44133022],[-8.04984472, -7.15541753, -6.26099034, -5.36656315, -4.47213595,-3.57770876, -2.68328157, -1.78885438, -0.89442719,  0.        ,0.89442719,  1.78885438,  2.68328157,  3.57770876,  4.47213595,5.36656315,  6.26099034,  7.15541753,  8.04984472,  8.94427191,9.8386991 , 10.73312629, 11.62755348, 12.52198067, 13.41640786,14.31083506, 15.20526225, 16.09968944, 16.99411663, 17.88854382],[-7.60263112, -6.70820393, -5.81377674, -4.91934955, -4.02492236,-3.13049517, -2.23606798, -1.34164079, -0.4472136 ,  0.4472136 ,1.34164079,  2.23606798,  3.13049517,  4.02492236,  4.91934955,5.81377674,  6.70820393,  7.60263112,  8.49705831,  9.39148551,10.2859127 , 11.18033989, 12.07476708, 12.96919427, 13.86362146,14.75804865, 15.65247584, 16.54690303, 17.44133022, 18.33575742],[-7.15541753, -6.26099034, -5.36656315, -4.47213595, -3.57770876,-2.68328157, -1.78885438, -0.89442719,  0.        ,  0.89442719,1.78885438,  2.68328157,  3.57770876,  4.47213595,  5.36656315,6.26099034,  7.15541753,  8.04984472,  8.94427191,  9.8386991 ,10.73312629, 11.62755348, 12.52198067, 13.41640786, 14.31083506,15.20526225, 16.09968944, 16.99411663, 17.88854382, 18.78297101],[-6.70820393, -5.81377674, -4.91934955, -4.02492236, -3.13049517,-2.23606798, -1.34164079, -0.4472136 ,  0.4472136 ,  1.34164079,2.23606798,  3.13049517,  4.02492236,  4.91934955,  5.81377674,6.70820393,  7.60263112,  8.49705831,  9.39148551, 10.2859127 ,11.18033989, 12.07476708, 12.96919427, 13.86362146, 14.75804865,15.65247584, 16.54690303, 17.44133022, 18.33575742, 19.23018461],[-6.26099034, -5.36656315, -4.47213595, -3.57770876, -2.68328157,-1.78885438, -0.89442719,  0.        ,  0.89442719,  1.78885438,2.68328157,  3.57770876,  4.47213595,  5.36656315,  6.26099034,7.15541753,  8.04984472,  8.94427191,  9.8386991 , 10.73312629,11.62755348, 12.52198067, 13.41640786, 14.31083506, 15.20526225,16.09968944, 16.99411663, 17.88854382, 18.78297101, 19.6773982 ],[-5.81377674, -4.91934955, -4.02492236, -3.13049517, -2.23606798,-1.34164079, -0.4472136 ,  0.4472136 ,  1.34164079,  2.23606798,3.13049517,  4.02492236,  4.91934955,  5.81377674,  6.70820393,7.60263112,  8.49705831,  9.39148551, 10.2859127 , 11.18033989,12.07476708, 12.96919427, 13.86362146, 14.75804865, 15.65247584,16.54690303, 17.44133022, 18.33575742, 19.23018461, 20.1246118 ],[-5.36656315, -4.47213595, -3.57770876, -2.68328157, -1.78885438,-0.89442719,  0.        ,  0.89442719,  1.78885438,  2.68328157,3.57770876,  4.47213595,  5.36656315,  6.26099034,  7.15541753,8.04984472,  8.94427191,  9.8386991 , 10.73312629, 11.62755348,12.52198067, 13.41640786, 14.31083506, 15.20526225, 16.09968944,16.99411663, 17.88854382, 18.78297101, 19.6773982 , 20.57182539],[-4.91934955, -4.02492236, -3.13049517, -2.23606798, -1.34164079,-0.4472136 ,  0.4472136 ,  1.34164079,  2.23606798,  3.13049517,4.02492236,  4.91934955,  5.81377674,  6.70820393,  7.60263112,8.49705831,  9.39148551, 10.2859127 , 11.18033989, 12.07476708,12.96919427, 13.86362146, 14.75804865, 15.65247584, 16.54690303,17.44133022, 18.33575742, 19.23018461, 20.1246118 , 21.01903899],[-4.47213595, -3.57770876, -2.68328157, -1.78885438, -0.89442719,0.        ,  0.89442719,  1.78885438,  2.68328157,  3.57770876,4.47213595,  5.36656315,  6.26099034,  7.15541753,  8.04984472,8.94427191,  9.8386991 , 10.73312629, 11.62755348, 12.52198067,13.41640786, 14.31083506, 15.20526225, 16.09968944, 16.99411663,17.88854382, 18.78297101, 19.6773982 , 20.57182539, 21.46625258],[-4.02492236, -3.13049517, -2.23606798, -1.34164079, -0.4472136 ,0.4472136 ,  1.34164079,  2.23606798,  3.13049517,  4.02492236,4.91934955,  5.81377674,  6.70820393,  7.60263112,  8.49705831,9.39148551, 10.2859127 , 11.18033989, 12.07476708, 12.96919427,13.86362146, 14.75804865, 15.65247584, 16.54690303, 17.44133022,18.33575742, 19.23018461, 20.1246118 , 21.01903899, 21.91346618],[-3.57770876, -2.68328157, -1.78885438, -0.89442719,  0.        ,0.89442719,  1.78885438,  2.68328157,  3.57770876,  4.47213595,5.36656315,  6.26099034,  7.15541753,  8.04984472,  8.94427191,9.8386991 , 10.73312629, 11.62755348, 12.52198067, 13.41640786,14.31083506, 15.20526225, 16.09968944, 16.99411663, 17.88854382,18.78297101, 19.6773982 , 20.57182539, 21.46625258, 22.36067977],[-3.13049517, -2.23606798, -1.34164079, -0.4472136 ,  0.4472136 ,1.34164079,  2.23606798,  3.13049517,  4.02492236,  4.91934955,5.81377674,  6.70820393,  7.60263112,  8.49705831,  9.39148551,10.2859127 , 11.18033989, 12.07476708, 12.96919427, 13.86362146,14.75804865, 15.65247584, 16.54690303, 17.44133022, 18.33575742,19.23018461, 20.1246118 , 21.01903899, 21.91346618, 22.80789337],[-2.68328157, -1.78885438, -0.89442719,  0.        ,  0.89442719,1.78885438,  2.68328157,  3.57770876,  4.47213595,  5.36656315,6.26099034,  7.15541753,  8.04984472,  8.94427191,  9.8386991 ,10.73312629, 11.62755348, 12.52198067, 13.41640786, 14.31083506,15.20526225, 16.09968944, 16.99411663, 17.88854382, 18.78297101,19.6773982 , 20.57182539, 21.46625258, 22.36067977, 23.25510697],[-2.23606798, -1.34164079, -0.4472136 ,  0.4472136 ,  1.34164079,2.23606798,  3.13049517,  4.02492236,  4.91934955,  5.81377674,6.70820393,  7.60263112,  8.49705831,  9.39148551, 10.2859127 ,11.18033989, 12.07476708, 12.96919427, 13.86362146, 14.75804865,15.65247584, 16.54690303, 17.44133022, 18.33575742, 19.23018461,20.1246118 , 21.01903899, 21.91346618, 22.80789337, 23.70232056],[-1.78885438, -0.89442719,  0.        ,  0.89442719,  1.78885438,2.68328157,  3.57770876,  4.47213595,  5.36656315,  6.26099034,7.15541753,  8.04984472,  8.94427191,  9.8386991 , 10.73312629,11.62755348, 12.52198067, 13.41640786, 14.31083506, 15.20526225,16.09968944, 16.99411663, 17.88854382, 18.78297101, 19.6773982 ,20.57182539, 21.46625258, 22.36067977, 23.25510697, 24.14953416],[-1.34164079, -0.4472136 ,  0.4472136 ,  1.34164079,  2.23606798,3.13049517,  4.02492236,  4.91934955,  5.81377674,  6.70820393,7.60263112,  8.49705831,  9.39148551, 10.2859127 , 11.18033989,12.07476708, 12.96919427, 13.86362146, 14.75804865, 15.65247584,16.54690303, 17.44133022, 18.33575742, 19.23018461, 20.1246118 ,21.01903899, 21.91346618, 22.80789337, 23.70232056, 24.59674775],[-0.89442719,  0.        ,  0.89442719,  1.78885438,  2.68328157,3.57770876,  4.47213595,  5.36656315,  6.26099034,  7.15541753,8.04984472,  8.94427191,  9.8386991 , 10.73312629, 11.62755348,12.52198067, 13.41640786, 14.31083506, 15.20526225, 16.09968944,16.99411663, 17.88854382, 18.78297101, 19.6773982 , 20.57182539,21.46625258, 22.36067977, 23.25510697, 24.14953416, 25.04396135],[-0.4472136 ,  0.4472136 ,  1.34164079,  2.23606798,  3.13049517,4.02492236,  4.91934955,  5.81377674,  6.70820393,  7.60263112,8.49705831,  9.39148551, 10.2859127 , 11.18033989, 12.07476708,12.96919427, 13.86362146, 14.75804865, 15.65247584, 16.54690303,17.44133022, 18.33575742, 19.23018461, 20.1246118 , 21.01903899,21.91346618, 22.80789337, 23.70232056, 24.59674775, 25.49117494]])
plt.quiver(new_x_grid,new_y_grid,new_x_grid,new_y_grid,product_values)
plt.ylim((15.5,-4.5))
(15.5, -4.5)

将每个像素位置的值进行可视化

  • 可以发现和上面矢量图的颜色的深度分布是一致的
plt.imshow(product_values)
plt.colorbar()

对符合某些条件的像素点进行筛选

  • 假设我要挑选出那些 pixel 的位置,这些 pixels 满足:

    • pixel 位置的矢量在 VVV 方向的长度大于 888 并且小于 202020
# 图中黄色的点表示的就是那些符合条件的像素点
plt.imshow((product_values >=8) & (product_values <=20))

python 矢量场的构造、计算;通过 matplotlib 作图、分析、筛选符合要求的像素点相关推荐

  1. python使用MongoDB,Seaborn和Matplotlib文本分析和可视化API数据

     介绍 软件开发职位通常需要的技能是NoSQL数据库(包括MongoDB)的经验.本教程将探索使用API​​收集数据,将其存储在MongoDB数据库中以及对数据进行一些分析. 相关视频:文本挖掘:主题 ...

  2. python用matplotlib作图时,x轴为时间轴,如何让x轴每隔几个点显示一次?

    用matplotlib作图时,x轴为时间轴,一共有365个点,如果让所有这些点都显示出来,x轴将变得拥挤不堪. 如何让x轴每隔比如20个点显示一次? 见如下代码:(如下代码使用了一份文件是已知的一年内 ...

  3. Python Seaborn或者Matplotlib作图:改变x、y轴标签的字体大小(xlabel,ylabel)

    文章目录 前言 Seaborn作图 matplotlib作图 小结 参考文献 前言 创作开始时间:2021年3月31日15:31:42 如题.给出在seaborn或者matplotlib作图这2种情况 ...

  4. python【Numpy科学计算库】Numpy的超实用基础详细教程(看不懂你来打我)

    文章目录 Numpy简单介绍 1.Numpy是什么 2. 多维数组 numpy数据类型设定与转换 numpy索引与切片 多维数组索引.切片 数组文件输入输出 使用numpy.arange方法 使用nu ...

  5. matplotlib输出图形到网页_【Python】No.2 Numpy和Matplotlib初体验

    上一次推送,我们了解了Python安装部署和conda管理,为后续的Python学习打下了基础,这次我们进入数据分析模块. Pandas.Numpy和Matplotlib被称为"数据分析三剑 ...

  6. 《从问题到程序:用Python学编程和计算》——3.4 定义函数

    本节书摘来自华章计算机<从问题到程序:用Python学编程和计算>一书中的第3章,第3.4节,作者 裘宗燕,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 3. ...

  7. 《从问题到程序:用Python学编程和计算》——1.3 程序开发

    本节书摘来自华章计算机<从问题到程序:用Python学编程和计算>一书中的第1章,第1.3节,作者 裘宗燕,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 1. ...

  8. 《从问题到程序:用Python学编程和计算》——1.2 Python语言简介

    本节书摘来自华章计算机<从问题到程序:用Python学编程和计算>一书中的第1章,第1.2节,作者 裘宗燕,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 1. ...

  9. 《从问题到程序:用Python学编程和计算》——2.4 字符串

    本节书摘来自华章计算机<从问题到程序:用Python学编程和计算>一书中的第2章,第2.4节,作者:裘宗燕 更多章节内容可以访问云栖社区"华章计算机"公众号查看. 2. ...

最新文章

  1. CSS——清除浮动的六种解决方案
  2. [转] form.getForm().submit的用法及Ext.Ajax.request的小小区别
  3. 前端学习(3038):vue+element今日头条管理-使用请求拦截器
  4. django笔记精炼 200304
  5. 60-120-040-使用-Data Transformation简介
  6. OpenShift 4之唤醒休眠的OpenShift应用
  7. Mac terminal 清屏快捷键
  8. USACO 2.1 海明码(DFS)
  9. cv2.error: OpenCV(4.5.3) :-1: error: (-5:Bad argument) in function ‘line‘ 报错解决
  10. 星号密码查看 android,侠客密码查看器怎么查看已输入的星号密码
  11. Debian安装软件商店-Debian的GUI软件管理
  12. Excel进行数据分析的常用知识的学习整理
  13. 清华大学计算机科学与技术考研分数,清华大学计算机科学与技术系2020考研复试分数线...
  14. 【第104期】游戏策划:如何看待另一半沉迷游戏?
  15. hive —— struct 复合结构
  16. 事件图谱的构建、推理与应用
  17. php最大的论坛,phpwind论坛史上最大漏洞 -电脑资料
  18. HTML(hiden控件 readonly disabled)(maxlength属性)(id属性重点)
  19. C# Find() 与 FindAll()方法的使用
  20. 读书笔记 - 《鱼:一种激发工作热情的绝妙方法》

热门文章

  1. Linus Torvalds 通过了 Linux 中避免 master/slave 等术语的提案
  2. 编码技巧——使用Easypoi导出Excel、多sheet
  3. 解决git在push时报错fatal: unable to access ‘https://github.com/sup0C/a.git/‘: errno 10054
  4. 树莓派中怎么更新python_树莓派升级python的具体步骤
  5. VLC的windows版本下载
  6. 使用Arduino连接一个LCD显示屏
  7. python logging日志模块以及多进程日志
  8. 计算机开机选择用户界面,Windows10每次开机都会出现选择操作系统界面的解决方法...
  9. vue3 watch 异步方法
  10. Vite ( Vue + TS ) 项目配置 @ 路径别名