gpt4 book ai didi

r - ggplot2::geom_text():如何显示所有因子水平,但抑制特定值,如 '0':

转载 作者:行者123 更新时间:2023-12-04 13:26:37 50 4
gpt4 key购买 nike

这是为我的问题提供上下文的代码:

set.seed(1); tibble(x=factor(sample(LETTERS[1:7],7,replace = T),levels = LETTERS[1:7])) %>% group_by_all() %>% count(x,.drop = F) %>% 
ggplot(mapping = aes(x=x,y=n))+geom_bar(stat="identity")+geom_text(
aes(label = n, y = n + 0.05),
position = position_dodge(1),
vjust = 0)

我希望变量 x 的所有级别都显示在 x 轴上 (LETTERS[1:7])。对于 n>0 的每个级别,我希望值显示在该级别的条形图上方。对于 n==0 的每个级别,我希望不显示值标签。目前,该图显示“空”因子水平 c(“C”,“F”)的 0,我想抑制这些水平的“0”显示,但仍显示“C”和“F” x 轴。

current plot

我希望有人能帮助我。

谢谢。

最佳答案

一个简单的 ifelse() 就可以做到。您可以输入任何您喜欢的文本,例如 ifelse( n>0, n , "No Data")

library( tidyr)
library( ggplot2)
library( dplyr )


set.seed(1); tibble(x=factor(sample(LETTERS[1:7],7,replace = T),levels = LETTERS[1:7])) %>% group_by_all() %>% count(x,.drop = F) %>%
ggplot(mapping = aes(x=x,y=n))+geom_bar(stat="identity")+
geom_text(
aes(label = ifelse( n>0, n , ""), y = n + 0.05),
position = position_dodge(1),
vjust = 0)

example graph without zeros

关于r - ggplot2::geom_text():如何显示所有因子水平,但抑制特定值,如 '0':,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60079745/

50 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com