ggplotを使ってヘビビンプロットを描画したいが、ログスケールが "かなり"ブレークする。私はこの作品、リニアスケール上のかなり休憩ggplotの16進数プロットできれいなログスケールを作成
ggplot(df, aes(a,b)) +
geom_hex(aes(fill=cut(..value..,breaks=pretty(..value.., n=10)))) +
scale_fill_discrete("Frequency")
を取得するためにthis answerを使用
df = data.frame(a=rnorm(1000)); df$b <- df$a+rnorm(1000);
を考えてみましょう。今私はログスケールのかなりの休憩を使用したいと言う。だから私は
base_breaks <- function(n = 10){
function(x) {
axisTicks(log10(range(x, na.rm = TRUE)), log = TRUE, n = n)
}
}
を定義し、
ggplot(df, aes(a,b)) +
geom_hex(aes(fill=cut(..value..,breaks=base_breaks(n=10)(..value..))))
をしようとするanother answerからのアイデアを使用しますが、機能を見つけることができません。それは言う:
たとえ、base_breaksが定義されています。
> base_breaks(n=10)(c(1:1000))
[1] 1 5 10 50 100 500 1000
ggplotがどのような環境でも機能を表示するにはどうすればよいですか?私はそれをグローバル変数として定義しても、
base_breaks <<- function(n = 10){
function(x) {
axisTicks(log10(range(x, na.rm = TRUE)), log = TRUE, n = n)
}
}
でも、同じエラーが表示されます。