繁体   English   中英

在 ggplot2 图中将 label 添加到 geom_vline

[英]Add label to geom_vline within a ggplot2 figure

到目前为止,我可以设法使用 ggpot2 构建以下 geom_density 图形:

cuts1 <- data.frame(Ref="p", vals=c(140))
cuts2 <- data.frame(Ref="s", vals=c(300))
cuts3 <- data.frame(Ref="m", vals=c(250))
cuts <- rbind(cuts1, cuts2, cuts3)

ggplot(mtcars, aes(x=disp)) +
     geom_density(color = "black",
               fill = 4,
               alpha = 1) +
   geom_vline(data = cuts , aes(xintercept=vals, color= Ref) )

在此处输入图像描述

我想知道是否有人知道 plot geom_vline 更像这样的方法:

在此处输入图像描述

线条没有到达图形的顶部和底部以及标签都以旋转方式显示的位置。

看一下geom_segment ,您可以将yend参数设置为您希望行结束的位置。

这是一种潜在的解决方案:

library(ggplot2)

cuts1 <- data.frame(Ref="p", vals=c(140))
cuts2 <- data.frame(Ref="s", vals=c(300))
cuts3 <- data.frame(Ref="m", vals=c(250))
cuts <- rbind(cuts1, cuts2, cuts3)

ggplot(mtcars, aes(x=disp)) +
  geom_density(color = "black",
               fill = 4,
               alpha = 1) +
  geom_segment(data = cuts, aes(x=vals, xend = vals,
                                y = 0, yend = max(density(mtcars$disp)[[2]]),
                                color= Ref), key_glyph = "vpath") +
  geom_text(data = cuts, aes(x = vals, y = max(density(mtcars$disp)[[2]]) * 1.02,
                             label = Ref), nudge_x = 5, angle = 45)

代表 package (v2.0.1) 于 2022 年 8 月 29 日创建

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM