R 比例×对数10中的百分比标签

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绘制R中的密度图。一个细微差别是,我的x轴是对数的,使用scale_x continuous。以下代码运行良好:

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), "%")