首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将标签添加到%r中的条形图

将标签添加到%r中的条形图
EN

Stack Overflow用户
提问于 2021-08-13 18:53:44
回答 2查看 38关注 0票数 0

我希望在条形图中添加标签,并省略0。现在它读起来很乱。我也希望标签出现在酒吧上,并有标签的位置上或以上的酒吧。我已经能够调整标签的高度,但是当我绘制一个比率时,y轴上的比例可能会发生变化,这是一个挑战。这是目前为止的图表

代码语言:javascript
复制
A <- c('A','B','C','D','E')
HQ <- c(0,0,0.2,0,0.5)
Category <-c(1,2,1,1,2)
HIData <-data.frame(A,HQ,Category)

Ainorder<- c('B','C','D','A','E')
Listofcolors <- c("A"="red","B"="red","C"="blue","D"="red","E"="blue")
HIPlot <- ggplot(data=HIData, aes(x=factor(A,level=Ainorder),y=HQ))+ geom_col()
HIPlot <- HIPlot + theme(panel.grid.major=element_blank(),panel.grid.minor=element_blank())
HIPlot <- HIPlot + theme(axis.text.x = element_text(angle=90,vjust=0.5, color = Listofcolors),axis.text.y=element_text(angle=0,vjust=0.5,color = "black")) 
HIPlot <- HIPlot + ylab("HQ")+xlab("")+ labs(title=paste0(first("HQ for "),HIData$ID))
HIPlot <- HIPlot + aes(fill=Category)
HIPlot <- HIPlot + geom_text(data=HIData, aes(label=HQ), angle=90) 
HIPlot

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-08-13 19:21:56

要使文本仅在>0上显示,我们可以对该层的数据进行子集。为了让它清晰地显示在条形图的上方,我们可以使用hjust (对齐是在角度旋转之前计算的,所以这里的up-down是由hjust驱动的)。为了给这些标签腾出空间,我们可以调整y刻度,在顶部增加更多的填充(这里是15%,而不是默认的5% )。

代码语言:javascript
复制
HIData$A = factor(HIData$A, level = Ainorder)

ggplot(data=HIData, aes(x=A, y=HQ, fill = Category)) + 
  geom_col() +
  geom_text(data=subset(HIData, HQ > 0), aes(label=HQ), angle=90, hjust = -0.2) +
  
  scale_y_continuous(expand = expansion(mult = c(0.05, 0.15))) +
  
  labs(title=paste0("HQ for ID TBD"), y = "HQ", x = NULL) +
  
  theme(panel.grid.major=element_blank(),
        panel.grid.minor=element_blank(),
        axis.text.x = element_text(angle=90,vjust=0.5, color = Listofcolors),
        axis.text.y=element_text(angle=0,vjust=0.5,color = "black")) 

票数 0
EN

Stack Overflow用户

发布于 2021-08-13 19:14:27

在单个geom_text调用中设置您的数据的子集。

代码语言:javascript
复制
ggplot(data=HIData, aes(x=factor(A,level=Ainorder),y=HQ)) +
  geom_col() + 
  theme(panel.grid.major=element_blank(),panel.grid.minor=element_blank()) +
  theme(axis.text.x = element_text(angle=90,vjust=0.5, color = Listofcolors),axis.text.y=element_text(angle=0,vjust=0.5,color = "black")) + 
  ylab("HQ") + xlab("") + labs(title=paste0(first("HQ for "),HIData$ID)) + 
  aes(fill=Category) +
  geom_text(data=subset(HIData, HQ > 0), aes(label=HQ), angle=90) 
# Warning: Vectorized input to `element_text()` is not officially supported.
# Results may be unexpected or may change in future versions of ggplot2.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68777182

复制
相关文章

相似问题

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