我的代码生成此图:
代码:
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) 我有一个情节,我需要从百分比数字中删除小数.数据已经四舍五入(两位小数),这是数据的一个例子:
> head(df$X)
[1] 0.05 0.28 0.08 0.19 0.33
Run Code Online (Sandbox Code Playgroud)
然后我绘制它,使用scale_x_continuous()将其转换为百分比格式,但正如您在下图中看到的,它们仍然有一个小数,我需要那些没有小数的数字.
这是图表的代码:
ggplot(df, aes(x=df$X, y=DF$Y)) +
geom_point(
colour="red",
size=5
) +
geom_text(label=df$Label, vjust=-2, family="sans", fontface="bold") +
labs(x="X", y="Y") + xlim(-1,1) + ylim(-1,1) + scale_x_continuous(labels=scales::percent) + scale_y_continuous(labels=scales::percent)
Run Code Online (Sandbox Code Playgroud)
我找到的最接近的答案是这个,但我不需要粘贴"%"符号,因为我已经拥有它.