Как центрировать сетку графика по точкам рассеяния? - PullRequest
0 голосов
/ 13 декабря 2018

У меня есть этот график рассеяния:

enter image description here

Я бы хотел переместить сетку так, чтобы каждая точка (зеленый квадрат) была быв окружении ячеек сетки.Например:

enter image description here

Код для воспроизведения сюжета:

import matplotlib.pyplot as plt

data = [24, 24, 24, 16, 16, 2, 2, 2]
x = list(range(0, len(data)))
y = list(range(0, 25))

plt.scatter(x, data, marker='s', c='g', s=100)
plt.yticks(y)
plt.xticks(x)

plt.grid(True)
plt.show()

1 Ответ

0 голосов
/ 13 декабря 2018

Может быть, что-то вроде следующего соответствует требованию.Вы можете использовать второстепенные тики для сетки и основные тики для меток.

import numpy as np
import matplotlib.pyplot as plt

data = [24, 24, 24, 16, 16, 2, 2, 2]
x = list(range(0, len(data)))

fig, ax = plt.subplots()
ax.scatter(x, data, marker='s', c='g', s=49)

ax.set_yticks(np.arange(25))
ax.set_yticks(np.arange(25+1)-0.5, minor=True)

ax.set_xticks(np.arange(len(data)))
ax.set_xticks(np.arange(len(data)+1)-0.5, minor=True)

ax.grid(True, which="minor")
ax.set_aspect("equal")
plt.show()

enter image description here

...