Skip to main content
 首页 » 编程设计

python之在 Python 中绘制网格

2025年05月04日8EasonJim

我正在尝试为流网绘制 2D 等高线图,但无法正确显示初始网格。

给定列数和行数,我如何编写一个函数来绘制网格,以便显示给定范围内的所有点?

我尝试通过这样做绘制 4 列和 3 行点:

r = 3 
 
c = 4 
 
x = [i for i in range(c)] 
 
y = [i for i in range(r)] 
 
plot(x,y,'ro') 
 
grid() 
 
show() 

并得到这个错误:

'ValueError: x and y must have same first dimension' 

所以我尝试在 4x4 网格上测试它并得到了这个并且我接近我想要的,但是它只绘制点 (0,0)、(1,1)、(2,2) 和 (3) ,3)

但是,我还想要点 (0,0)、(1,0)、(2,0)、(3,0)、(1,0)、(1,1)...(3 ,2), (3,3) 出现,因为我稍后需要从该点绘制矢量,指示我的流网的流向。

抱歉,我知道我的术语不是那么好。有谁知道如何执行此操作以及如何使其适用于非正方形的网格?

请您参考如下方法:


import numpy as np 
import matplotlib.pyplot as plt 
import itertools 
r = 3 
c = 4 
x = np.linspace(0, c, c+1) 
y = np.linspace(0, r, r+1) 
 
pts = itertools.product(x, y) 
plt.scatter(*zip(*pts), marker='o', s=30, color='red') 
 
X, Y = np.meshgrid(x, y) 
deg = np.arctan(Y**3 - 3*Y-X) 
QP = plt.quiver(X, Y, np.cos(deg), np.sin(deg)) 
plt.grid() 
plt.show()