2014-02-28 11 views
0

我有一些項目具有不同的資格標準 - 特別是在本示例中,兩個變量分別具有允許的最小值和最大值。我希望通過在顯示分鐘和最大值之間的區域的圖表上繪製每個產品的矩形來查看產品的覆蓋範圍。R ggplot2 - 將行記錄轉換爲垂直值並在geom_polygon中使用

你怎麼會去

  • 轉換記錄最典雅,由geom_polygon需要()和
  • 確保產生的形狀顯示爲矩形

library(data.table) 
library(ggplot2) 
df<-data.table(Product=letters[1:10], minX=1:10, maxX=5:14, minY= 10:1, maxY=14:5) 

df.t<-data.table(rbind(df[,list(Product,X=minX,Y=minY)], 
     df[,list(Product,X=minX,Y=maxY)], 
     df[,list(Product,X=maxX,Y=minY)], 
     df[,list(Product,X=maxX,Y=maxY)]))[ 
     order(Product,X,Y)] 

ggplot(df.t,aes(x=X,y=Y,group=Product,fill=Product))+geom_polygon() 

Result

NB在該降低的例中,只有兩個標準,但是我有個範圍的標準列的和不希望重複上述用於不同組合的鍛鍊。

回答

2

使用原來的數據幀df然後geom_rect()因爲你已經爲xy最小值和最大值。

ggplot(df,aes(xmin=minX,xmax=maxX,ymin=minY,ymax=maxY,fill=Product))+geom_rect() 

enter image description here

+0

D'哦,看似簡單,早該RTFMd更多 –

相關問題