在ggplot2密度图(geom_density)中,我有以下y轴标签
将它们改为类似的正确方法是什么?
可能会在标签上自动添加"10 ^ 3 x密度".在过去,我只是将我的数据相乘并手动更改标签,但在这种情况下,密度图为我生成了y轴数据.
我知道我可以编写类似的东西scale_y_continuous(trans="log10"),但是没有找到任何方法来做一个简单的乘法常量,或者定义一个自定义变换.
fma*_*ark 26
对于ggplot2版本0.90,这个答案已经过时了.现在,将以这种方式指定相同的格式(更加整齐):
scale_y_continuous(labels=function(x)x*1000)
Run Code Online (Sandbox Code Playgroud)
或者如果您想多次使用相同的标签方案:
formatter1000 <- function(){
function(x)x*1000
}
scale_y_continuous(labels=formatter1000())
Run Code Online (Sandbox Code Playgroud)
请注意,如果使用xlim和ylim函数指定轴限制,则可能不起作用.相反,请使用scale_y_continuous(..., limits=c(0, 1))规范.
包中还有一堆内置格式scales,包括逗号格式,百分比格式,美元格式和科学记数法格式.有关详细信息,请参阅其文档.
希望帮助那里的人,因为这种变化肯定让我很困惑!
dar*_*zig 15
您可以scale_y_continuous(formatter='formatter1000')使用之前定义的以下函数添加:
formatter1000 <- function(x){
x*1000
}
Run Code Online (Sandbox Code Playgroud)
请注意,上述答案是在一年半之前使用之前的ggplot版本.使用ggplot的最新版本(0.9),上面的示例无法正常工作,请尝试以下方法:scale_y_continuous(labels = formatter1000)