Home > Software engineering >  Square plot in a meshgrid in Python
Square plot in a meshgrid in Python

Time:07-03

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

enter image description here

The expected output is

enter image description here

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()

enter image description here

  • Related