Отличный ответ! Именно то, что я хотел сделать. Я предпочитаю простой подход, так как этого достаточно для того, что мне нужно, но спасибо за объяснение подхода к блокам данных.
ел бы масштабировать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
ценности.
В настоящее время при выполнении вышеуказанного генерируется следующий сюжет ...
markersize
на обоих графиках оставлено значение по умолчанию, т.е.markersize=6
.
Мой вопрос, как я мог вычислитьmarkersize
значение такmarker
s касаются краев каждой ячейки? (Каждая ячейка имеет максимум одну точку данных.)