2016-06-01 2 views
5

Использование функции ggplotgeom_pointrange(), как изменить размер точки и толщину линии отдельно?Отдельные размеры для точек и линий в geom_pointrange от ggplot

Пример:

# make test data 
df <- data.frame(y=10, ymin=1, ymax=20, x=1) 

# store ggplot object 
p <- ggplot(data=df, aes(y=y, ymin=ymin, ymax=ymax, x=x)) 

# plot 1: big dot and thick line 
p + geom_pointrange(fill='blue', color='grey', shape=21, size=5) 

# plot 2: small dot and thin line (I want small dot and thick line or vice versa) 
p + geom_pointrange(fill='blue', color='grey', shape=21, lwd=1, size=5) 

Участок 1:

enter image description here

Участок 2:

enter image description here

Могу ли я получить маленькую точку с толстой линией (или наоборот -versa)?

Обходной способ может заключаться в построении линии и точки в виде отдельных геометров с использованием geom_point и geom_errorbar. К сожалению, мое реальное приложение связано с дрожанием, поэтому точка и интервал заканчиваются в разных местах (разве что, может быть, я могу контролировать дрожание?).

Я могу найти похожие вопросы по SO (like this), но они прямо не отвечают на этот вопрос.

Спасибо!

ответ

8

Вы можете использовать fatten в сочетании с size:

p + geom_pointrange(fill='blue', color='grey', shape=21, fatten = 20, size = 5) 

enter image description here

p + geom_pointrange(fill='blue', color='grey', shape=21, fatten = .5, size = 5) 

enter image description here

с. ?geom_pointrange:

откармливают
множителя используется для увеличения размера среднего бара в geom_crossbar() и средней точке в geom_pointrange().

+0

Интересно, что 'fatten', похоже, работает в Windows, но не в моей среде Unix. Есть предположения? – dmp

+0

Я пробовал на Mac, не знаю, в чем проблема, может быть, вам нужно обновить версию R и ggplot2? – beetroot

Смежные вопросы