相关疑难解决方法(0)

如何在ggplot2中将百分比四舍五入到小数点后两位

我的代码生成此图:

在此处输入图片说明

代码:

ggplot(areas, aes(x = RETAILER, y = Difference), label=sprintf("%0.2f", round(areas$Difference, digits = 2))) +
geom_bar(stat = "identity", aes(fill = RETAILER), colour = "black") +
scale_y_continuous("Percentage", labels = percent_format()) +
geom_text(aes(label = paste(Difference * 100, "%"),
              vjust = ifelse(Difference >= 0, -1.5, 1.5))) +
theme_classic()
Run Code Online (Sandbox Code Playgroud)

我找到了允许将数据标签正确定位在每个条形上方或下方的代码,但我似乎无法将值四舍五入到小数点后两位。

我已经尝试过round(areas, 2)以及sprintf("%0.2f")其他事情,但我尝试的任何东西似乎都不起作用,而且我确信我错过了一些简单的东西。

我哪里错了?

更新:

在罗兰的“鼓励”下,我现在几乎解决了这个问题;现在的问题是我现在丢失了百分比符号:

在此处输入图片说明

我如何让他们回来?

更新代码:

ggplot(areas, aes(x = RETAILER, y = Difference)) +
  geom_bar(stat = "identity", aes(fill = RETAILER), colour = "black") +
  scale_y_continuous("Percentage", labels = …
Run Code Online (Sandbox Code Playgroud)

r rounding ggplot2

8
推荐指数
3
解决办法
1万
查看次数

如何在ggplot中始终拥有固定的小数位数 - geom_text

我需要固定的小数位数(在这种情况下为两个),但我无法使其工作,我知道使用roundaccuracy功能,但它似乎对我不起作用

代码:

library(ggplot2)

ggplot(mtcars, aes(factor(cyl))) + 
  geom_bar(color = "steelblue", fill = "#00AFBB", na.rm = T) +
  scale_fill_discrete(drop=FALSE) +
  scale_x_discrete(drop=FALSE) +
  geom_text(aes(label=scales::percent(round(..count../sum(..count..),4))),
            stat='count',vjust = -0.5, size = 4)
Run Code Online (Sandbox Code Playgroud)

r ggplot2 geom-text

1
推荐指数
1
解决办法
646
查看次数

标签 统计

ggplot2 ×2

r ×2

geom-text ×1

rounding ×1