Отличный ответ! Именно то, что я хотел сделать. Я предпочитаю простой подход, так как этого достаточно для того, что мне нужно, но спасибо за объяснение подхода к блокам данных.

ел бы масштабироватьmarkersize изmatplotlib.pyplot.Axes.scatter график, основанный на количестве точек на оси х / у.

import matplotlib.pyplot as plt
import numpy as np

vmin = 1
vmax = 11

x = np.random.randint(vmin, vmax, 5)
y = np.random.randint(vmin, vmax, 5)

fig, ax = plt.subplots()
for v in np.arange(vmin, vmax):
    ax.axvline(v - 0.5)
    ax.axvline(v + 0.5)
    ax.axhline(v - 0.5)
    ax.axhline(v + 0.5)

ax.set_xlim(vmin - 0.5, vmax + 0.5)
ax.set_ylim(vmin - 0.5, vmax + 0.5)
ax.scatter(x, y)

ax.set_aspect(1)
plt.show()

ax всегда использует одинаковое соотношение сторон, и обе оси имеют одинаковыеlim ценности.

В настоящее время при выполнении вышеуказанного генерируется следующий сюжет ...

... и меняя значениеvmax = 41

markersize на обоих графиках оставлено значение по умолчанию, т.е.markersize=6.

Мой вопрос, как я мог вычислитьmarkersize значение такmarkers касаются краев каждой ячейки? (Каждая ячейка имеет максимум одну точку данных.)

Ответы на вопрос(1)

Ваш ответ на вопрос