Как мне построить регулярную сетку в Matplotlib в качестве фона - PullRequest
0 голосов
/ 04 марта 2020

Я хочу нанести сетку на фон линии 2D-графика, аналогично тому, как это делается для презентаций ЭКГ, т.е. при заданных точках c в точках с регулярным интервалом, например, как на этом изображении

Example for regular grid

В этом примере точно 4 точки расположены на расстоянии от основных точек. Хочу, я не хочу, вот что: Построение сетки с помощью Matplotlib , то есть просто пунктирные линии сетки

Что я сделал до сих пор (исходя из древних знаний Matlab), так это:

 xg = np.linspace(iStart/fs, iEnd/fs, len(y))
 yrange = ax.get_ylim()
 yg = np.linspace(yrange[0], yrange[1], 4)
 xx, yy = np.meshgrid(xg, yg)
 gridpoints, = plt.plot(xx.reshape(1,-1),yy.reshape(1,-1),linewidth=0.3,color='0.75',marker=".",markersize=10)

Но мне это дает: enter image description here

Что я не понимаю?

Ответы [ 2 ]

0 голосов
/ 06 марта 2020

Я нашел свою ошибку. Это не было ошибкой в ​​моем мышлении, но мой len (y) в linspace x ссылался на неправильный вектор, создавая слишком мелкую сетку, которая выглядела как линия.

0 голосов
/ 04 марта 2020

Как сказал jpnadas, вы можете использовать plt.grid ()

здесь пример того, как вы можете установить и настроить сетку

import matplotlib.pyplot as plt
from matplotlib.ticker import MultipleLocator

img = plt.imread(imagename)
_, ax = plt.subplots(ncols=1,nrows=1)
ax.imshow(img)

plt.gca().xaxis.set_major_locator(MultipleLocator(16))
plt.gca().yaxis.set_major_locator(MultipleLocator(16))
plt.gca().xaxis.set_minor_locator(MultipleLocator(32))
plt.gca().yaxis.set_minor_locator(MultipleLocator(32))

# Don't allow the axis to be on top of your data
ax.set_axisbelow(True)
# Turn on the minor TICKS, which are required for the minor GRID
ax.minorticks_on()
# Customize the major grid
ax.grid(which='major', linestyle='-', linewidth='4', color='yellow')
# Customize the minor grid
ax.grid(which='minor', linestyle=':', linewidth='2', color='blue')

plt.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...