geom_text标签如何设置不同的数字舍入规范?

How to set different digit rounding specifications for labels with geom_text?

我正在尝试用四舍五入到小数点后一位的数据来标记我的条形图。但是,我的值为 0。我想找到某种方法来确保零值不会显示为 0.0。我希望它们显示为 0.

这是我的情节目前的样子:

代码:p2+geom_text(aes(label=sprintf("%0.1f", pct)), position=position_dodge(width=0.7), vjust=-0.25, size=3)

我通过尝试完全不标记 0 值来解决这个问题。但是,这会导致我的标签未正确对齐的问题。 (请注意最左侧面板中美洲原住民 0. 的标签偏移量)。

代码:p2+geom_text(data=subset(demo_long_pct,pct != 0),aes(label=sprintf("%0.1f", pct)), position=position_dodge(width=0.7), vjust=-0.25, size=3)

在其中使用 ifelse 语句如何?像这样..

p2 + geom_text(aes(label=ifelse(test = pct == 0, yes = pct, no = sprintf("%0.1f", pct)), position=position_dodge(width=0.7), vjust=-0.25, size=3) 

如果 yes 条件参数仍然标有小数点,您也可以将其替换为 0。