Размер маркеров в графиках рассеяния с помощью pyplot
Проблема с единицами измерения для размера маркеров в 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 ответ(ов)
Если размер кругов соответствует квадрату параметра в 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]
.
Сохранить график в файл изображения вместо его отображения
Как сделать графики Matplotlib отображаемыми внутри IPython-ноутбука?
Как задать размер шрифта заголовка фигуры и меток осей?
Как задать пределы осей в Matplotlib?
Когда использовать cla(), clf() или close() для очистки графика?