2017-05-12 4 views
3

Ich habe versucht, ein Diagramm wie das unten in ggplot zu machen. Ich wollte, dass die y-Beschriftungen den gesamten Wertebereich von 1 bis 50 anzeigen, aber ich wollte nur alle 10 Zahlen horizontale Gitternetzlinien erzeugen. Ich dachte, minor_breaks hinzuzufügen und dann das Thema zu steuern würde funktionieren. Das Festlegen der Hauptgitterlinien auf element_blank scheint jedoch auch die Nebengitterlinien zu überschreiben. Ich habe hier einige Fragen gefunden, bei denen Leute gefragt haben, ob sie mehr Gitternetzlinien als Beschriftungen hinzufügen möchten, aber ich möchte das Gegenteil.Fügen Sie Gitterlinien nur kleineren Brüchen hinzu (ggplot)

Wie kann ich die Anzahl der Rasterlinien kleiner als die Anzahl der Unterbrechungen festlegen? Vielen Dank!

enter image description here

Hier ist der Code für das Grundstück ist:

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 

    ) 

Antwort

2

Von diesen https://github.com/tidyverse/ggplot2/issues/403 lesen, so scheint es, dass es einige Probleme umgeben minor_breaks. Jedoch sollte geom_hline() Sie bekommen, was Sie wollen.

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

Verwandte Themen