В Python с Matplotlib, как можно построить график рассеяния с пустыми кругами? Цель состоит в том, чтобы нарисовать пустые круги вокруг некоторых цветных дисков, которые уже нанесены scatter()
, чтобы выделить их, в идеале, без необходимости перерисовывать цветные круги.
Я пытался facecolors=None
, но безрезультатно.
python
matplotlib
geometry
scatter-plot
scatter
Эрик О Лебиго
источник
источник
Ответы:
Из документации по скаттеру:
Попробуйте следующее:
Примечание: для других типов графиков см. Этот пост по использованию
markeredgecolor
иmarkerfacecolor
.источник
facecolors=None
не работает, что меня смутило.markerfacecolor='none'
, как сейчас.markerfacecolor='none'
попробуйте добавитьmarkeredgewidth=1.0
%matplotlib inline
иimport matplotlib.pyplot as plt
, а затем установкиimport seaborn as sns; sns.set()
Будет ли это работать?
или используя plot ()
источник
plot
вместоscatter
scatter
, вам нужно указать,edgecolors
какedgecolors='r'
. В противном случае круги исчезают. Смотрите здесьВот еще один способ: это добавляет круг к текущим осям, графику или изображению или что-то еще
(Круги на картинке сжимаются до эллипсов, потому что
imshow aspect="auto"
).источник
В matplotlib 2.0 есть параметр,
fillstyle
который позволяет лучше контролировать заполнение маркеров. В моем случае я использовал его с errorbars , но это работает для маркеров вообще http://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.errorbar.htmlfillstyle
принимает следующие значения: ['full' | «левый» | «правильно» | «дно» | «верх» | 'никто']Есть две важные вещи , которые нужно иметь в виду при использовании
fillstyle
,1) Если для mfc установлено любое значение, оно будет иметь приоритет, следовательно, если вы установили для fillstyle значение «none», оно не будет действовать. Поэтому избегайте использования mfc в сочетании с fillstyle
2) Возможно, вы захотите контролировать ширину края маркера (используя
markeredgewidth
илиmew
), потому что, если маркер относительно мал, а ширина края толстая, маркеры будут выглядеть как заполненные, даже если это не так.Ниже приведен пример использования панелей ошибок:
источник
Основываясь на примере Гэри Керра и, как предлагается здесь, можно создать пустые кружки, связанные с указанными значениями, с помощью следующего кода:
источник
.scatter()
не сработало. Для контекста я также применял карту цветов (c=z, cmap='jet'
).Поэтому я предполагаю, что вы хотите выделить некоторые моменты, которые соответствуют определенным критериям. Вы можете использовать команду Prelude для создания второго точечного графика выделенных точек с пустым кругом и первого вызова для построения всех точек. Убедитесь, что параметр s достаточно мал для больших пустых кругов, чтобы охватить меньшие заполненные.
Другой вариант - не использовать scatter и рисовать патчи по отдельности с помощью команды circle / ellipse. Они находятся в matplotlib.patches, вот пример кода о том, как рисовать круги прямоугольниками и т. Д.
источник