繁体   English   中英

ggplot2中的多个geom_text语句重叠标签

[英]Overlapping labels with multiple geom_text statements in ggplot2

我正在制作带有误差线的ggplot,即使我在geom_text函数中使用check_overlap = T,但其中之一仍存在重叠文本

这是最后一家医院的主要问题

ggplot(scores, aes(x=hospital, y=mean), xlab = "score") + 
  geom_point(shape = 19, size = 3) + 
  #geom_line(color="blue") + 
  geom_errorbar(aes(x=hospital, ymin=lower, ymax=upper), color="blue", width=.5) + 
  coord_flip() + 
  theme(axis.text=element_text(size=20), axis.title=element_text(size=25,face="bold"), 
        plot.title = element_text(face = "bold", size = 30)) + 
  ggtitle("Linear Regression Predictions for Scores") + ylab("Score")+ xlab("Hospital") + 
  labs(subtitle = "Data used for Prediction: 2014-2019") + 
  geom_text(aes(label = round(mean, 1)),vjust = -1, size = 8, check_overlap = T)+ 
  geom_text(aes(y = lower, label = round(lower, 1)),vjust= -1, size = 8, check_overlap = T) + 
  geom_text(aes(y = upper, label = round(upper, 1)),vjust = -1, size = 8, check_overlap = T) 

Dataframe:      
        hospital      mean    lower     upper
1       A             50      40        60
2       B             60      55        65
3       C             80      78        82
4       D             70      65        75
5       E             99      98        100

我建议为文本使用较长版本的数据,这样您就可以一次调用geom_text来获取它:

library(dplyr); library(tidyr); library(ggplot2)
scores_long <- hospital %>%
  gather(stat, value, -hospital) %>%
  mutate(value = round(value, 1))

ggplot(data = scores, aes(x=hospital, y=mean), xlab = "score") + 
  geom_errorbar(aes(x=hospital, ymin=lower, ymax=upper), color="blue", width=.5) + 
  geom_point(shape = 19, size = 3) + 
  coord_flip() + 
  theme(axis.text=element_text(size=20), axis.title=element_text(size=25,face="bold"), 
        plot.title = element_text(face = "bold", size = 30)) + 
  ggtitle("Linear Regression Predictions for Scores") + ylab("Score")+ xlab("Hospital") + 
  labs(subtitle = "Data used for Prediction: 2014-2019") +
  geom_text(data = scores_long, 
            aes(label = value, y = value), vjust = -1, size = 8, check_overlap = T)

在此处输入图片说明

暂无
暂无

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

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