2016-11-13 2 views
1

Wie zeichne multiples polygonal chains in ggplot? Ich schrieb so etwas wie:Zeichnung polygonalen Ketten in ggplot

x=c(1,3,4,5,6) 
y=c(0.5,2,3,7,1) 
z=c(8,2,6,7,8) 
n=length(x)-1 
library(ggplot2) 
p <- ggplot(mtcars, aes(wt, mpg)) 
for (i in 1:n){ 
    p <-p + geom_segment(aes(x = x[i], y = y[i], xend = x[i+1], yend = y[i+1]), colour = "red") 
    p$plot_env <- list2env(list(x=x,y=y)) 
    } 

Zeichnung zwei polygonalen Ketten:

n=length(x) 
pol1=c(x,y) 
pol2=c(y,z) 
g=c(rep(1,n),rep(2,n)) 
library(ggplot2) 
p0 <- ggplot(mtcars,aes(wt,mpg)) 
p0 + geom_path(aes(pol1,pol2,group=g),data=data.frame(pol1,pol2)) 

ggplot

Antwort

0

Ich kann nicht ganz sagen, was Sie hier wollen.

  • Sie geben mehr als einen Pfad an? Ich sehe nur einen einzigen Satz von x und y Werte.
  • Was soll z tun?

Sie können über

p0 <- ggplot(mtcars,aes(wt,mpg)) 
p <- p0 + geom_path(aes(x,y),data=data.frame(x,y)) 

oder einen geschlossenen Weg über

p0 + geom_polygon(aes(x,y),data=data.frame(x,y),fill=NA, 
      colour="black") 

einen einzigen (nicht geschlossenen) Pfad zeichnen Wenn Sie mehr als einen Weg haben, können Sie alle kombinieren die Vertices in zwei langen Vektoren x und y, bilden einen g Vektor, um Pfade zu unterscheiden, und verwenden aes(x,y,group=g), um die Pfade/Polygone werden separat gezeichnet.

+0

Die 'Gruppe' Ästhetik löste es, will es sehen? – user3083324

+0

Ich bin immer noch nicht klar, was Sie versuchen zu tun. Wenn Sie denken, dass meine Antwort für zukünftige Leser ausreichend klar und nützlich sein wird, können Sie das akzeptieren. Ansonsten können Sie gerne eine ausführlichere Antwort selbst veröffentlichen. –

+0

Ich habe es akzeptiert, da es korrekt ist, wenn Sie denken, dass etwas unklar ist, fühlen Sie sich frei, diesen Beitrag zu bearbeiten. – user3083324