6

Размер маркеров в графиках рассеяния с помощью pyplot

1

Проблема с единицами измерения для размера маркеров в scatter plot

В документации pyplot для функции scatter указано следующее:

matplotlib.pyplot.scatter(x, y, s=20, c='b', marker='o', cmap=None, norm=None,
                          vmin=None, vmax=None, alpha=None, linewidths=None,
                          faceted=True, verts=None, hold=None, **kwargs)

Обратите внимание на параметр s:

s: размер в points^2. Это скаляр или массив такой же длины, как x и y.

Что за единица измерения "points^2"? Что она означает? Значит ли s=100 размер маркера равный 10 пикселей x 10 пикселей?

В целом, я пытаюсь создать графики рассеяния с разными размерами маркеров и хочу понять, что именно означает число s.

1 ответ(ов)

0

Если размер кругов соответствует квадрату параметра в s=parameter, то нужно присвоить квадратный корень каждому элементу, который вы добавляете в массив размеров. Это можно сделать следующим образом: s=[1, 1.414, 1.73, 2.0, 2.24]. Таким образом, когда значения будут возвращены, их относительное увеличение размера будет соответствовать квадратному корню от прогрессии квадратов, что, в свою очередь, выдаст линейную прогрессию.

Если бы я хотел возвести каждое значение в квадрат при выводе на график: output=[1, 2, 3, 4, 5]. Вы можете попробовать следующий подход: s=[numpy.sqrt(i) for i in s].

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь