2017-05-12 7 views
3

ggplotに以下のようなチャートを作成しようとしていました。私は1から50までの値のセット全体を表示するためにyラベルを必要としましたが、私は10個の数字ごとに水平グリッド線を生成したいだけでした。私はminor_breaksを追加して、テーマをコントロールすると効果があると思った。ただし、メジャーグリッド線をelement_blankに設定すると、マイナーグリッド線もオーバーライドされているようです。私はラベルよりもグリッドラインを追加することについて人々が質問したところでいくつかの質問を見つけましたが、その逆が欲しいです。マイナーブレイクのみにグリッド線を追加する(ggplot)

グリッド線の数をブレークの数よりも小さく設定するにはどうすればよいですか?ありがとう!ここで

enter image description here

プロットのためのコードです:

library(nsRFA) 
library(ggplot2) 
library(dplyr) 

data(hydroSIMN) 
annualflows %>% ggplot(aes(x = anno, y = cod)) + 
    geom_point(
     shape = 45, 
     size = 5, 
     col = "blue" 
    ) + 
    scale_y_reverse(
     breaks = 1:50, 
     labels = 1:50, 
     minor_breaks = seq(10, 50, by = 10) 
    ) + 
    scale_x_continuous(breaks = seq(1920, 1980, by = 10)) + 
    labs(
     x = "Year", 
     y = "Code" 
    ) + 
    theme(
     panel.background = element_blank(), 
     panel.border = element_rect(fill = NA), 
     text = element_text(size = 10), 
     panel.grid.major.x = element_line(color = "grey80"), 
     panel.grid.major.y = element_blank(), 
     panel.grid.minor.y = element_line(color = "grey80") # This doesn't work 

    ) 

答えて

2

このhttps://github.com/tidyverse/ggplot2/issues/403を読んでから、それはいくつかの問題がminor_breaksを囲むがあるように思われます。ただし、geom_hline()を使用すると、必要なものを手に入れることができます。

library(nsRFA) 
library(ggplot2) 
library(dplyr) 


data(hydroSIMN) 

minors<-seq(10,50,by=10) 

annualflows %>% ggplot(aes(x = anno, y = cod)) + 
    geom_point(
    shape = 45, 
    size = 5, 
    col = "blue" 
) + 
    scale_y_reverse(
    breaks = 1:50, 
    labels = 1:50, 
    minor_breaks = seq(10, 50, by = 10) 
) + 
    scale_x_continuous(breaks = seq(1920, 1980, by = 10)) + 
    labs(
    x = "Year", 
    y = "Code" 
) + 
    theme(
    panel.background = element_blank(), 
    panel.border = element_rect(fill = NA), 
    text = element_text(size = 10), 
    panel.grid.major.x = element_line(color = "grey80"), 
    #panel.grid.major.y = element_blank(), 
    #panel.grid.minor.y = element_line(color = "grey80") # This doesn't work 
)+ 
    geom_hline(mapping=NULL, yintercept=minors,colour='grey80') 

enter image description here

関連する問題