首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在in图中映射到组中的标号均线

在in图中映射到组中的标号均线
EN

Stack Overflow用户
提问于 2022-06-28 21:31:46
回答 1查看 38关注 0票数 0

我有每班和一年的密度图。该方法是通过在一个名为mu的df中分组来绘制的。我还添加了垂直参考线,我可以在没有问题的情况下给它们贴上标签,但我似乎无法得到分组垂直线上的标签。你会看到我最近的尝试,它抛出了一个错误:“美学必须是长度1或与数据(134):X相同。”

我的代码

代码语言:javascript
复制
    library(ggplot2)
    library(dplyr)
    df <- read.csv("f4_bna_no_cup.csv")

    head(df)
  ï..n   yr s     ys      x
1    1 2021 1 2021-1 116.83
2    2 2021 1 2021-1 114.83
3    3 2021 1 2021-1 115.50
4    4 2021 1 2021-1 115.42
5    5 2021 1 2021-1 115.58
6    6 2021 1 2021-1 115.58
#summarize means by ys (year-shift)
    mu <- df %>% 
      group_by(ys,s) %>%
      summarise(grp.mean = mean(x))  
    mu
    ys    s     grp.mean
  <chr>  <int>    <dbl>
1 2021-1     1     116.
2 2021-2     2     117.
3 2022-1     1     114.
4 2022-2     2     115.

llab<-mu

    shift <- c("Shift 1", "Shift 2")
#density charts on df
    ggplot(data=df, aes(x=x,group =ys, fill = yr, color = yr)) +
    geom_density(alpha = 0.4) +
    scale_x_continuous(limits=c(112,120))+
    geom_vline(aes(xintercept = grp.mean), data = mu, linetype = "dashed", size = 0.5)  +
    geom_text(aes(x=llab$grp.mean, y=.6), label = llab$ys) +   #this throws the error
    geom_vline(aes(xintercept=114.8), linetype="dashed", size=0.5, color = 'green3') +
    geom_text(aes(x=114.8, y=.6), label = "Target", angle = 90, color="black",size=3) +
    geom_vline(aes(xintercept=114.1), linetype="solid", size=0.5, color = 'limegreen') +
    geom_text(aes(x=114.1, y=.55), label = "Potential", angle = 90, color="black",size=3 ) +
    geom_vline(aes(xintercept=113.4), linetype="solid", size=0.5, color = 'firebrick3') +
    geom_text(aes(x=113.4, y=.62), label = "Label wt", angle = 90, 
         color="black",size=3, family = "Times New Roman", vjust=0) +
    facet_grid(
    .~s,
    labeller = labeller(
      s = c(`1` = "Shift 1", `2` = "Shift 2")
  
    ))+
 
    theme_light()+
    theme(legend.position = "none") 

输出到目前为止.我很接近。

EN

回答 1

Stack Overflow用户

发布于 2022-06-29 02:59:49

坚持是有回报的。我想,如果其他人有类似的问题,我会分享它:所有代码都与我问题中的代码相同,除了对mu的分组做了轻微的更改,并替换了我注意到的抛出错误的行,如下所示:

代码语言:javascript
复制
#small change to group_by, retaining yr
mu <- df %>% 
  group_by(yr,s,ys) %>%
  summarise(grp.mean = mean(x))

将: geom_text(aes(x=llab$grp.mean,y=.6),label = llab$ys)改为

代码语言:javascript
复制
geom_text(data = mu, aes(label = yr), x = mu$grp.mean, y = .60, color = "black", angle = 90, vjust = 0)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72793360

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档