2016-09-25 7 views
2

This answerは、マイナーブレイクをどこに配置するかを指定する方法を示しています。 には、minor_breaksが関数であることが示されています。しかし、これは入力として、私が予想したように、プロット限界を下回る、上の主要なグリッド線の位置とはみなさない。ggplot2メジャーブレークあたりのマイナーブレイクの倍数

メジャーごとに私を返すスクリプトを作るのはとても簡単ではありません。これは、複数の異なるデータセットで使用したいスクリプトがあるので、私がやりたいことです。私は限界を事前に知っていないので、私はそれらをハードコードすることはできません。私はもちろん、プロットする前にデータセットから必要な値を取得する関数を作成することができますが、それは過度のようです。

メジャーブレイクあたりのマイナーブレイク数を示す一般的な方法はありますか?

答えて

1

私はscales::extended_breaksが連続尺度のデフォルトの機能だと思います。この関数の中断回数を設定し、minor_breaksの数をbreaksの整数倍にすることができます。

library(ggplot2) 
library(scales) 
nminor <- 7 
nmajor <- 5 
ggplot(iris, aes(x = Species, y = Sepal.Length)) + 
    geom_point() + 
    scale_y_continuous(breaks = extended_breaks(n = nmajor), minor_breaks = extended_breaks(n = nmajor * nminor)) 

Image of the example

2

プロットからメジャーを抽出し、そこからマイナーを計算してプロットに設定することができます。

df <- data.frame(x = 0:10, 
       y = 0:10) 
p <- ggplot(df, aes(x,y)) + geom_point() 

majors <- ggplot_build(p)$panel$ranges[[1]]$x.major_source 
multiplier <- 4 
minors <- seq(from = min(majors), 
       to = max(majors), 
       length.out = ((length(majors) - 1) * multiplier) + 1) 
p + scale_x_continuous(minor_breaks = minors) 

enter image description here

関連する問題