ggplot中geom_pointrange中点和线的大小分开

dmp*_*dmp 6 r ggplot2

使用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)
Run Code Online (Sandbox Code Playgroud)

情节1:

在此输入图像描述

情节2:

在此输入图像描述

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

一种解决方法可能是使用geom_point和绘制线条和点作为单独的geoms geom_errorbar.不幸的是,我的实际应用程序涉及抖动,所以点和间隔最终在不同的地方(除非我可以控制抖动?).

我可以在SO上找到类似的问题(像这样),但他们并没有直接回答这个问题.

谢谢!

bee*_*oot 11

您可以fatten结合使用size:

p + geom_pointrange(fill='blue', color='grey', shape=21, fatten = 20, size = 5)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

p + geom_pointrange(fill='blue', color='grey', shape=21, fatten = .5, size = 5)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

秒.?geom_pointrange:

fatten
一个乘法因子,用于增加geom_crossbar()中的中间条的大小和geom_pointrange()中的中间点.