I want to plot multiple squares of size 1x1
using meshgrid
. The current and expected outputs are presented.
import numpy as np
import matplotlib.pyplot as plt
X = np.array([0,1,2])
Y = np.array([0, -1, -2])
xx, yy = np.meshgrid(X,Y)
plt.plot(xx, yy,"s")
plt.show()
The current output is
The expected output is
CodePudding user response:
I try to suggest the following solution. Given the assumption that we have 1x1 squares, meshgrid
is not necessary:
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
X = np.array([0, 1, 2])
Y = np.array([0, -1, -2])
x_sorted = np.sort(X)
y_sorted = np.sort(Y)
ax.set_xticks(x_sorted)
ax.set_yticks(y_sorted)
ax.set_xlim(x_sorted[0], x_sorted[-1])
ax.set_ylim(y_sorted[0], y_sorted[-1])
ax.grid()
ax.set_aspect('equal', 'box')
plt.show()