1

私はここ数週間ggplotを学んでいます。一般的に、私は物事を成し遂げていますが(ゆっくりですが)、今は行き詰まっています。次のファセットプロットを作成しました:http://dl.dropbox.com/u/7752237/example_bad_y_scales.pdf

ファセットはによって行われます

pl <- pl + facet_wrap(~sci_name,ncol=1,scale="free")

問題:yスケールの数値、特に0〜70のスケール(数値が重なっている)は見栄えがよくありません。どういうわけか、yスケールのブレーク数を変更したいのですが(たとえば、1つか2つのブレークだけ)。誰かがそれを行う方法を知っているかもしれませんか?どんな助けでも大歓迎です。:)

PS:その特定の問題を解決するのにあまり役に立たないと思うので、最小限の例は含めませんでした。

Kohskesの回答後に編集:

こんにちはコースケ、うわー、それは本当に速い答えでした、ありがとう!ただし、ファセットプロットではうまく機能しないと思います。見る

p <- ggplot(mtcars, aes(wt, mpg))
p <- p + geom_point()
p <- p + facet_wrap(~gear,ncol=1,scale="free")

yスケールでは、中央のプロットで3回のブレーク、下のプロットで8回のブレークが発生します…あまり一貫性はありません(ただし、少なくとも私の例のように重複していません)。

p2 <- p + scale_y_continuous(breaks=c(15,30),minor_breaks=c(10,20,25))

どちらも実際には良くありません。下のプロットに2つの主要な目盛りがあり、中央と上のプロットに1つだけです。mtcarsよりも大きな差のあるスケールがある場合、結果はさらに満足のいくものではありません。他のアイデアはありますか?;)

Kohskes編集後に編集:

こんにちは、これを実装する方法がわかりません。グーグルでggplotとinput_breakを検索しても10件の結果しか得られませんでしたが、どれも役に立ちませんでした。私は試した

p <- ggplot(mtcars, aes(wt, mpg))
p <- p + geom_point()
p <- p + facet_wrap(~gear,ncol=1,scale="free")
p$input_breaks<-function(., range) {
    pretty(range, n=3)
}
print(p)

ただし、グラフに効果は見られません(n = 1、3、15で試してみました)。mtcarsの例でこれを実装する方法を説明していただけますか?ありがとう!

4

1 に答える 1

3

p <-ggplot(mtcars、aes(wt、mpg))p <-p + geom_point()

dev.new(height=1)
print(p)
dev.new(height=1)
p <- p + scale_y_continuous(breaks=c(15,30),minor_breaks=c(10,20,25))
print(p)

トリックはscale_y_continuousであり、ブレークとマイナーブレークを指定できます。

編集:

おそらく、ファセットごとに個別にブレークを指定することはできません。回避策の1つは、次の方法で休憩のかわいさを制御することです。

Trans$input_breaks<-function(., range) {
    pretty(range, n=3)
}
print(p)

「n=3」を変更すると、異なるかわいらしさが得られます。

再編集:

ここに完全な例があります:

library(ggplot2)
p <- ggplot(mtcars, aes(wt, mpg))+geom_point()
Trans$input_breaks<-function(., range) {
    pretty(range, n=100)
}
print(p)

この場合、おそらく数百のダニを見ることができます。n = 100を変更することで、カスタマイズできます。

これには副作用があることに注意してください。この後のすべてのプロットのティック数は同じであり、x軸とy軸のティック数も同じです。

于 2010-08-10T02:34:29.777 に答える