我有这行代码:
ggplot(data=AB2, aes(AB2$logbm)) +
geom_histogram(breaks=seq(-1.5, 2.5, by=((max(AB2$logbm)-min(AB2$logbm))/7)))
我在尝试转换y轴单位时遇到问题 - 首先我需要记录它,并使用:
scale_y_log10()
之后,我想将所有值除以60
,然后按1.25
除以。但是使用上面的代码,我似乎无法通过在命令后添加:60*1.25
来调整它。
有没有办法告诉ggplot
这样做?
干杯,
答案 0 :(得分:3)
您还可以使用scale包定义自己的trans
。通常:
scale_y_continuous(trans = "log10")
转型:
scale_y_continuous(trans = scales::trans_new("lognew",
transform = function(x){log10(x)*1.25/60},
inverse = function(x){10^(x*60/1.25)})
)
答案 1 :(得分:2)
您可以使用..count..
aes
来执行此操作,但不确定您希望的原因
ggplot(AB2, aes(x = logbm)) +
scale_y_log10() +
geom_histogram(aes(y = ..count.. * 1.25 / 60))
NB无需在aes中引用data.frame。