在ggplot2密度图(geom_density)中,我有以下y轴标签
将它们改为类似的正确方法是什么?
可能会在标签上自动添加"10 ^ 3 x密度".在过去,我只是将我的数据相乘并手动更改标签,但在这种情况下,密度图为我生成了y轴数据.
我知道我可以编写类似的东西scale_y_continuous(trans="log10"),但是没有找到任何方法来做一个简单的乘法常量,或者定义一个自定义变换.
自升级到R 2.15以来,formatter参数似乎抛出了错误.这是我每天都在使用2年的争论,所以这是一个巨大的失败.
R版本2.15.0(2012-03-30)
ggplot2版本0.9.0
> library(ggplot2)
> x <- 1:100
> y <- 1/x
> p <- qplot(x,y)
> p + scale_y_continuous(formatter = "percent")
Error in continuous_scale(c("y", "ymin", "ymax", "yend", "yintercept", :
unused argument(s) (formatter = "percent")
Run Code Online (Sandbox Code Playgroud) 当您选择对数刻度时,ggplot2会格式化10 ^ x之类的中断.我希望不这样做.例如,下面的代码应该显示一个刻度为1,2,5等的图形,而不是10 ^ 0,10 ^ 0.3,10 ^ 0.69等.
library(ggplot2)
dfr <- data.frame(x = 1:100, y = rlnorm(100))
breaks <- as.vector(c(1, 2, 5) %o% 10^(-1:1))
p1 <- ggplot(dfr, aes(x, y)) + geom_point() + scale_y_log10(breaks = breaks)
print(p1)
Run Code Online (Sandbox Code Playgroud)
我想添加一个formatter参数scale_y_log10可以解决这个问题,但是我不确定要在参数中添加什么,或者可以记录选项的位置.
我在 R 中用 ggplot2 创建了一个直方图,需要一个对数间隔的 x 轴,但想保留我的线性值。
这可能吗?
到目前为止,我的公式是:
ggplot(f0peruttnq, aes(f0)) +
geom_histogram(alpha=0.3, fill='white', colour='black')
Run Code Online (Sandbox Code Playgroud)
有点跑题:我还尝试在直方图上叠加一条正常曲线,但是如果我想保留计数而不是 x 轴上的密度值, geom_density() 似乎不起作用。当我尝试 + stat_function( fun = dnorm ) 时,根本没有任何改变!
在此先感谢您提供任何有用的提示!
它现在工作了!
我使用的公式:
ggplot(data, aes(V2)) + geom_histogram(alpha=0.3, fill='white', colour='black')+scale_x_log10(breaks=c(50,100,150,200,250),labels=c(50,100,150,200,250))
Run Code Online (Sandbox Code Playgroud)
谢谢你的耐心 :-)