R 比例×对数10中的百分比标签
我试图用ggplot绘制R中的密度图。一个细微差别是,我的x轴是对数的,使用scale_x continuous。以下代码运行良好:R 比例×对数10中的百分比标签,r,ggplot2,R,Ggplot2,我试图用ggplot绘制R中的密度图。一个细微差别是,我的x轴是对数的,使用scale_x continuous。以下代码运行良好: ggplot(MELTCOMP,aes(x=value)) + geom_density(aes(fill=variable), alpha = 0.1) + scale_fill_manual( name = "S
ggplot(MELTCOMP,aes(x=value)) + geom_density(aes(fill=variable), alpha = 0.1) +
scale_fill_manual(
name = "Spend",
values = c("blue","red","green"),
labels = c("A","B","C")
) +
scale_x_log10(breaks = c(0.00001,0.0001,0.001,0.01,0.1,1,10,100),labels = percent) +
geom_vline(aes(xintercept = c(0.00001,0.0001,0.001,0.01,0.1,1,10,100)), color = "grey") +
theme(axis.ticks = element_blank(), panel.background = element_blank(), panel.grid = element_blank(),
axis.text.y = element_blank())
问题在于x轴的显示方式。当我使用:
scale_x_log10(breaks = c(0.00001,0.0001,0.001,0.01,0.1,1,10,100),label = percent)
从“缩放”包中,“我的轴”具有标签:
0%-0%-0%-0%-0%-10%-100%…
请注意重复的“0%”。我感到困惑的是,这可能与比例百分比函数有关,如下所示
function (x)
{
x <- round_any(x, precision(x)/100)
paste0(comma(x * 100), "%")
}
函数(x)
{
x
paste0(comma(x * 100), "%")
与
问题在于,comma
考虑其整个输入以确定常用的有效位数–但这正是您不想要的。不幸的是,函数文档没有提到这一点。相关部分可以在中找到,其中comma
调用:
数字向量用最小的十进制数编码
需要将所有元素至少显示为“数字”的位置
有效数字
从以下位置查看输出:paste0(signif(100*c(0.00001,0.0001,0.001,0.01,0.1,1,10100),1))
paste0(comma(x * 100), "%")
paste0(sapply(x * 100, comma), "%")