R 如何在柱状图上精确显示小数位数

R 如何在柱状图上精确显示小数位数,r,ggplot2,bar-chart,R,Ggplot2,Bar Chart,如何在ggplot条形图标签上指定精确的小数位数 数据: strefa <- c(1:13) a <- c(3.453782,3.295082,3.137755,3.333333,3.500000,3.351351,3.458824,3.318681,3.694175,3.241379,3.138298,3.309524,3.380000) srednie <- data.frame(strefa,a) 如您所见,标题为5和2的条上的标签限制在小数点后1位。即使

如何在
ggplot
条形图标签上指定精确的小数位数

数据:

strefa  <- c(1:13)
a       <- c(3.453782,3.295082,3.137755,3.333333,3.500000,3.351351,3.458824,3.318681,3.694175,3.241379,3.138298,3.309524,3.380000)
srednie <- data.frame(strefa,a)
如您所见,标题为5和2的条上的标签限制在小数点后1位。即使有3.000000或5.999999,如何显示小数点后2位?在这种情况下,我想显示3.00和6.00


我尝试将其用作aes参数,但它不起作用。

您可以尝试以下操作,因为它将四舍五入为两位数,并在小数点后打印两位数

ggplot(srednie, aes(x=factor(strefa), y=a, label=sprintf("%0.2f", round(a, digits = 2)))) +
  geom_bar(position=position_dodge(), stat="identity",  colour="darkgrey", width = 0.5) +
  theme(legend.position="none",axis.text.x = element_blank(), axis.ticks.x = element_blank(), axis.ticks.y = element_blank()) +
  geom_text(size = 4, hjust = 1.2) +
  coord_flip(ylim = c(1,6))+
  xlab("") +
  ylab("")
唯一的修改是将代码从

round(a, digits = 2)


如果我只需要3位数字,而不需要小数点,该怎么办?123.45 -> 123, 1.234 -> 1.23, 0.0121 -> 0.01, 1 -> 1.00@skan如果输入为
1234567.89
,您想要什么?在
:)之前有7个数字,那么大的数字在我的问题中不会出现。如果是那样的话,我会用科学的格式来写。最后,我将函数substr(mynumbers,1,4)@skan与
substr
一起使用,您可能在第三位有不正确的舍入(
1.239
将变成
1.23
,而不是
1.24
)。下面的内容将超过三位数
round(a, digits = 2)
sprintf("%0.2f", round(a, digits = 2))