在“R”中的“ggalt::geom_dumbbell”中为哑铃图添加传统图例

Cro*_*ops 8 plot r data-visualization ggplot2 ggalt

如何向使用ggalt::geom_dumbbellin创建的哑铃图添加传统图例R

这个问题有一个图表内图例的答案。如何映射美学以获得侧面/底部点的单独图例?

library(ggalt)

df <- data.frame(trt=LETTERS[1:5], l=c(20, 40, 10, 30, 50), r=c(70, 50, 30, 60, 80))

ggplot(df, aes(y=trt, x=l, xend=r)) + 
  geom_dumbbell(size=3, color="#e3e2e1", 
                colour_x = "red", colour_xend = "blue",
                dot_guide=TRUE, dot_guide_size=0.25) +
  theme_bw()
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

aos*_*ith 6

获取图例的一种方法是基于长格式的数据集添加一个点图层,映射color到分组变量。

首先,通过gatherfrom tidyr制作一个长格式数据集。

df2 = tidyr::gather(df, group, value, -trt)
Run Code Online (Sandbox Code Playgroud)

然后制作绘图,添加具有长数据集的新点图层并scale_color_manual用于设置颜色。我将geom_dumbbell特定的美学移到该层。

ggplot(df, aes(y = trt)) + 
     geom_point(data = df2, aes(x = value, color = group), size = 3) +
     geom_dumbbell(aes(x = l, xend = r), size=3, color="#e3e2e1", 
                   colour_x = "red", colour_xend = "blue",
                   dot_guide=TRUE, dot_guide_size=0.25) +
     theme_bw() +
     scale_color_manual(name = "", values = c("red", "blue") )
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明