在Python中绘制网格

ban*_*ang 1 python grid plot

我正在尝试为流网启动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()
Run Code Online (Sandbox Code Playgroud)

并得到此错误:

'ValueError: x and y must have same first dimension'
Run Code Online (Sandbox Code Playgroud)

所以我尝试在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)出现,因为我稍后需要从这一点绘制向量,指示流网的流向.

对不起,我知道我的术语不是很好.有谁知道如何做到这一点,以及如何让它适用于不正方形的网格?

unu*_*tbu 6


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()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述