2010-11-17 9 views
5

Ich möchte Hintergrundgitter zur Mitte des Diagramms hinzufügen und dann die Standardgitterlinien ausblenden. Die Eckpunkte des Rasters sind im Datenrahmen von pts gespeichert und ich habe versucht, geom_tile zu verwenden, aber es scheint nicht die angegebenen Punkte zu verwenden. Vielen Dank im Voraus für Ihre Hilfe.Wie kann ich ein Hintergrundraster mit ggplot2 hinzufügen?

library(ggplot2) 
pts <- data.frame(
     x=c(170,170,170,177.5,177.5,177.5,185,185,185), 
     y=c(-35,-25,-15,-35,-25,-15,-35,-25,-15)) 
ggplot(quakes, aes(long, lat)) + 
    geom_point(shape = 1) + 
    geom_tile(data=pts,aes(x=x,y=y),fill="transparent",colour="black") + 
    opts(
     panel.grid.major=theme_blank(), 
     panel.grid.minor=theme_blank() 
    ) 

Antwort

6

Sie manuell die Pausen angeben:

ggplot(quakes, aes(long, lat)) + geom_point(shape = 1) + 
    scale_x_continuous(breaks = c(170, 177.5, 185)) + 
    scale_y_continuous(breaks = c(-35, -25, -15)) + 
    opts(panel.grid.minor = theme_blank(), 
     panel.grid.major = theme_line("black", size = 0.1)) 

dann ist es das, was Sie wollen?

pts <- data.frame(x=c(170, 170, 170, 170, 177.5, 185), 
        y=c(-35, -25, -15, -35, -35, -35), 
        xend=c(185, 185, 185, 170, 177.5, 185), 
        yend=c(-35, -25, -15, -15, -15, -15)) 
ggplot(quakes, aes(long, lat)) + geom_point(shape = 1) + 
    geom_segment(data=pts, aes(x, y, xend=xend, yend=yend)) + 
    opts(panel.grid.minor = theme_blank(), 
     panel.grid.major = theme_blank()) 
+1

Eigentlich möchte ich das Gitter stattdessen im Hintergrund schweben lassen (siehe mein Beispiel). Trotzdem danke. – user338714

+0

Hallo, dann habe ich das Beispiel aktualisiert. siehe oben. – kohske

+0

Genau das habe ich gesucht - danke. Ich fand auch, dass geom_path funktionieren würde, aber es ist ziemlich umständlich, alle Punkte entlang des Pfades zu berechnen: pts <- data.frame (x = c (170,170,170,177,5, 177,5,177,5,185,185,185,177,5,170,170,177,5,185,185,177,5,170)) y = c (-35, -25, -15, -15, -25, -35, -35, -25, -15, -15, -15, -25, -25, -25, -35, - 35, -35)). – user338714

1

Nicht elegant, aber das ist etwas schnell und dreckig, dass ich kam. Leider kann ich die Linie an einem bestimmten Punkt nicht stoppen, es geht nur bis zum Rand.

ggplot(quakes, aes(long, lat)) + geom_point(shape = 1) 
+ opts(panel.grid.major=theme_blank(), 
     panel.grid.minor=theme_blank()) 
+ geom_vline(aes(xintercept =seq(165,185,by=5))) 
+ geom_hline(aes(yintercept=seq(-35,-15,by=5))) 
+0

Wenn Sie eine Figur wie diese für eine Publikation bearbeiten, können Sie immer als eps speichern und dann die zusätzlichen Zeilen in Adobe Illustrator bearbeiten. Das würde ich tun. – Maiasaura

Verwandte Themen