我在R中用ggplot2创建了一个直方图,需要一个对数间隔的x轴,但是想保留我的线性值。
这可能吗?
到目前为止我的公式是:
ggplot(f0peruttnq, aes(f0)) +
geom_histogram(alpha=0.3, fill='white', colour='black')
稍微偏离主题:我还尝试在我的直方图上叠加一条正常曲线,但是如果我想在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))
感谢您的耐心: - )
答案 0 :(得分:4)
你的意思是不转换你的数据而只改变情节吗?如果是这样,很容易:
来自ggplot2 help pages的修改示例:
library(ggplot2)
dat <- subset(movies, votes > 1000)
m <- qplot(rating, votes, data=dat, na.rm = T)
bks <- seq(min(dat$rating),max(dat$rating))
m + scale_x_log10(breaks=bks,labels=bks)
答案 1 :(得分:0)
我不确定这对ggplot2是否可行,但是如果你不是完全依赖于那个库,我99%肯定你可以使用标准{{1}的axis()
函数来做到这一点。库。
得到应有的尊重,并且无意在此处进行讨论(如果您愿意,我们可以将其与之聊天),但这不是误导? x轴上的标签应反映其实际值。由于您正在对数据进行对数转换,因此轴标签应反映该转换。否则就会在科学上不诚实。
编辑了一个使用graphics
库的例子......不像ggplot2那么漂亮,但它可以做你想要的(注意:我不得不编辑直方图的断点):
graphics