Толщина границы контрольной точки в ggplot
При использовании ggplot я могу установить shape
в 21-25, чтобы получить фигуры, которые имеют независимую настройку для внутренних цветов (fill
) и границ (col
), например:
df <- data.frame(id=runif(12), x=1:12, y=runif(12))
ggplot(df, aes(x=x, y=y)) +
geom_point(aes(fill=id, size=id), colour="black", shape=21)
![enter image description here]()
Однако я не могу понять, как контролировать толщину границ формы, либо устанавливая их абсолютно, либо как эстетическое отображение. Я отмечаю, что если я устанавливаю значение lwd
, он переопределяет эстетику size
:
ggplot(df, aes(x=x, y=y)) +
geom_point(aes(fill=id, size=id), colour="black", shape=21, lwd=2)
![enter image description here]()
Как контролировать толщину границы?
Ответы
Ответ 1
Начиная с версии 2.0.0 ggplot2, существует аргумент для контроля толщины границы точки. Из файла NEWS.md
:
geom_point() получает эстетику штриха, которая контролирует ширину границы фигур 21-25 (# 1133, @SeySayux). размер и ход являются аддитивными, поэтому точка с размером = 5 и штрих = 5 будет иметь диаметр 10 мм. (# Тысячи сто сорок две)
Таким образом, правильное решение для этого теперь:
df <- data.frame(id=runif(12), x=1:12, y=runif(12))
ggplot(df, aes(x=x, y=y)) +
geom_point(aes(fill=id, size=id), colour="black", shape=21, stroke = 2)
![Вывод]()
Ответ 2
Он немного взломан, но вы можете добавить набор "фоновых" точек с размером, установленным на эстетическое отображение, а также небольшую константу, чтобы увеличить границу точек. Играйте с константой, чтобы получить желаемую ширину границы.
Вам также придется отключить легенду размера, чтобы остановить отображение легенды на графике...
ggplot(df, aes(x=x, y=y)) +
geom_point(aes(size=id+0.5), colour="black" , show_guide = FALSE )+
scale_size( guide = "none" )+
geom_point(aes(fill=id, size=id), colour="black", shape=21)
![enter image description here]()
Ответ 3
Другим решением является создание графика в R, а затем его экспорт в файл .svg. Ширина линии затем может быть изменена с помощью программного обеспечения для редактирования векторной графики (например, Inkscape). Этот метод особенно полезен, когда точки данных перекрываются.