R ggplot2恒定因子轴变换
在ggplot2密度图(geom_密度)中,我有以下y轴标签R ggplot2恒定因子轴变换,r,ggplot2,R,Ggplot2,在ggplot2密度图(geom_密度)中,我有以下y轴标签 0.000 0.005 0.010 0.015 0.020 正确的方法是什么 0 五, 十, 十五 二十 可能需要在标签上自动添加“10^3 x密度”。在过去,我只是将数据相乘并手动更改标签,但在本例中,y轴数据是由密度图为我生成的 我知道我可以写一些东西,比如scale\u y\u continuous(trans=“log10”),但是没有找到任何方法来做简单的乘法常量,或者定义自定义转换。您可以使用前面定义的以下函数添加
- 0.000
- 0.005
- 0.010
- 0.015
- 0.020
- 0
- 五,
- 十,
- 十五
- 二十
我知道我可以写一些东西,比如
scale\u y\u continuous(trans=“log10”)
,但是没有找到任何方法来做简单的乘法常量,或者定义自定义转换。您可以使用前面定义的以下函数添加scale\u y\u continuous(formatter='formatter1000')
:
formatter1000 <- function(x){
x*1000
}
formatter1000对于ggplot2版本0.90,此答案已过时。现在,同样的格式将通过以下方式指定(更加简洁):
scale_y_continuous(labels=function(x)x*1000)
或者,如果要多次使用相同的标签方案:
formatter1000 <- function(){
function(x)x*1000
}
scale_y_continuous(labels=formatter1000())
formatter1000太完美了。你有没有遇到过关于格式化程序的好文档?@Pengin:不幸的是,我没有。ggplot中有一些硬编码的格式化程序,例如:逗号、科学、百分比、美元,但是你可以用上面的简单函数编写任何东西。基本上这就是它们的全部,但在下一个版本中,它们将被拆分成自己的包,希望有更多的文档。警告:这在ggplot 0.9
中不起作用。更新版本见下面我的答案。scale\u y\u continuous(labels=formatter1000)
注释对我有效。请注意,labels'参数接受函数,而
formatter`选项显然将函数名作为文本字符串。谢谢。scales软件包的文档只是细节。scales软件包的作用是在本文中提供大量格式化函数,如formatter1000
,要选择其中一个函数,您可以从函数名猜出它的作用。