ggplot2 中的自定义轴刻度标签

2023-12-02

我想展示一个简短的时间序列,显示 22 年来欧洲海洛因缉获量的异质性。然而,某些年份包含不同数量的国家。我想通过在 x 轴上放置每年的“n=xx”来在图表中显示这一点。有谁知道我应该怎么做?

across_time<- ggplot(by_year, aes(year, value) + 
          geom_errorbar(aes(ymin=value-se, ymax=value+se), width=.4) +
          geom_line(colour="black", size= 2) +
          geom_point(size=4, shape=21, fill="white") +  # 21 is filled circle
          xlab("Year") +
          ylab("Siezures") +  
          ggtitle("Hetrogeniety Across Time") +
          scale_x_continuous(breaks = round(seq(min(1990), max(2012), by=2)))
across_time

以下是该图表的链接:

https://i.stack.imgur.com/JuK4S.jpg


我发现这是一个解决方案:

#make a list of the lables you want
lab<-  c("1990\nn=26", "1991\nn=29", "1992\nn=30", "1993\nn=32", "1994\nn=36", "1995\nn=35", "1996\nn=33", "1997\nn=38", "1998\nn=36", "1999\nn=39", "2000\nn=39", "2001\nn=40", "2002\nn=38", "2003\nn=40", "2004\nn=39", "2005\nn=41", "2006\nn=42", "2007\nn=43", "2008\nn=44", "2009\nn=41", "2010\nn=41", "2011\nn=41", "2012\nn=42") 
lab<-  as.factor(lab)

#bind our label list to our table
by_year<-cbind(lab, by_year)

#make a column of zeros to group by for the line
by_year$g<- 0

# Standard error of the mean
  across_time<- ggplot(by_year, aes(x=lab, y=value)) + 
         geom_errorbar(aes(ymin=value-se, ymax=value+se), width=.4) +
         geom_line(aes(group=g), colour="black", size= 2) + #notice the grouping
         geom_point(size=4, shape=21, fill="white") +  # 21 is filled circle
         scale_x_discrete(labels = by_year$lab) + # discrete not continuous 
         xlab("Year & Number of Reporting Countries") +
         ylab("Total Annual Seizures") +  
         ggtitle("Heterogeneity of Heroin Seizures in Europe") 
across_time

这是最终结果:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ggplot2 中的自定义轴刻度标签 的相关文章

随机推荐