使用ggplotgeom_pointrange()函数,如何分别更改点的大小和线的粗细?

例:

# 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:

r - geom_pointrange中点和线的大小与ggplot分开-LMLPHP

情节2:

r - geom_pointrange中点和线的大小与ggplot分开-LMLPHP

我可以用粗线得到一个小点(反之亦然)吗?

一种解决方法是使用geom_pointgeom_errorbar将线和点绘制为单独的几何图形。不幸的是,我的实际应用涉及抖动,因此,点和间隔最终会出现在不同的位置(除非我可以控制抖动?)。

我可以在SO(like this)上找到类似的问题,但它们并不能直接回答这一问题。

谢谢!

最佳答案

您可以将fattensize结合使用:

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


r - geom_pointrange中点和线的大小与ggplot分开-LMLPHP

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


r - geom_pointrange中点和线的大小与ggplot分开-LMLPHP

s。 ?geom_pointrange


催肥
乘数因子,用于增加
geom_crossbar()中的中间条和中点
geom_pointrange()。

09-12 10:32