2016-11-13 183 views
1

如何在ggplot中繪製倍數polygonal chains?我寫的是這樣的: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)) 
    } 

繪製多邊形2個鏈:

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

回答

0

我不能完全告訴你想要的這裏。

  • 您是否指定多個路徑?我只看到一組值爲xy的值。
  • 什麼是z應該在做什麼?

您可以通過

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

畫通過

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

或閉合路徑的單一(未閉合)路徑如果你有一個以上的路徑,你可以將所有兩個長向量中的頂點xy構成g向量來區分路徑,並使用aes(x,y,group=g)來獲取路徑/多邊形分開繪製。

+0

'羣體審美解決了它,想看到它嗎? – user3083324

+0

我還不清楚你想要做什麼。如果你認爲我的答案對未來的讀者來說足夠清晰和有用,你可以接受它。否則,歡迎您自行發佈更全面的解答。 –

+0

我接受它,因爲它是正確的,如果您認爲某些內容不清楚,請隨時編輯本文。 – user3083324