2014-03-05 85 views
2

我一直在嘗試創建一個風箏圖表失敗。我想顯示在每個深度水平(820,1208,1750和2209米)觀察到的每種魚類的總數(a-f)。我嘗試過plotrix中的kiteChart,但無法確定如何將數據轉換爲正確的格式。 我試圖按照使用下面的一個論壇另一篇文章,但沒有奏效:在R創建風箏圖表

X <- read.table(textConnection("Species Total Depth 
A 6 820 
A 15 1208 
A 77 1750 
A 41 2209 
B 11 820 
B 17 1208 
B 17 1750 
B 1 2209 
C 0 820 
C 13 1208 
C 5 1750 
C 4 2209 
D 32 820 
D 0 1208 
D 0 1750 
D 0 2209 
E 0 820 
E 11 1208 
E 0 1750 
E 0 2209 
F 0 820 
F 0 1208 
F 0 1750 
F 6 2209"),header=TRUE) 
library(reshape) 
X2 <- recast(X,Depth~Species,id.var=1:2) 
X3 <- as.matrix(X2[,-1]) 
rownames(X3) <- X2$Depth 
colnames(X3) <- names(X2)[-1] 
library(plotrix) 
kiteChart(t(X3),xlab="Depth",ylab="Species") 

#or 
x2<-matrix(X$Total,ncol=3) 
rownames(x2)<-unique(X$Distance) 
colnames(x2)<-unique(X$Species) 
kiteChart(t(X3),xlab="Distance",ylab="Species") 

任何人都可以提出一個解決辦法? 非常感謝

更新:我已經重新安排我的數據,現在可以產生下面的圖。

X <- read.table(textConnection("Species Depth Total 
A 820 6 
A 1208 15 
A 1750 77 
A 2209 41 
B 820 11 
B 1208 17 
B 1750 17 
B 2209 1 
C 820 0 
C 1208 13 
C 1750 5 
C 2209 4 
D 820 32 
D 1208 0 
D 1750 0 
D 2209 0 
E 820 0 
E 1208 11 
E 1750 0 
E 2209 0 
F 820 0 
F 1208 0 
F 1750 0 
F 2209 6"),header=TRUE) 
library(reshape) 
X2 <- recast(X,Depth~Species,id.var=1:2) 
X3 <- as.matrix(X2[,-1]) 
rownames(X3) <- X2$Depth 
colnames(X3) <- names(X2)[-1] 
library(plotrix) 
kiteChart(t(X3),xlab="Depth",ylab="Species") 

enter image description here

+1

我不知道,如果'kiteChart'可以有一個連續的'時間軸'(在你的情況下是深度),其中x值可能是不規則的極其間隔。一個簡單的例子:三次/深度m < - 矩陣(樣本(1:6),nrow = 2,ncol = 3)的兩個物種。 'kiteChart(米)'。然後設想他們不是在1米,2米,3米,而是在1,3,9米處採樣。嘗試'timepos'參數:'kiteChart(m,timepos = c(1,3,9))'。似乎x軸上的比例是分類的,而不是連續的。如果我誤解了'kiteChart',請糾正我。乾杯。 – Henrik

回答

1

也許這個作品:

library(plotrix) 
x2<-matrix(X$Total,ncol=4,byrow=TRUE) 
colnames(x2)<-unique(X$Depth) 
rownames(x2)<-unique(X$Species) 
kiteChart(x2,xlab="Depth",ylab="Species") 

它產生如下圖我的安裝:

enter image description here

2

鑑於在「時間軸」中kiteChart似乎是離散的,不連續的(見上面我的評論小例子),我想的是另一種方式來可視化數據。一個區域情節怎麼樣,這會給你連續的深度。

library(ggplot2) 
ggplot(data = X, aes(x = Depth, y = Total, fill = Species)) + 
    geom_area(position = "stack") + 
    coord_flip() + 
    scale_x_reverse() 

enter image description here

+0

是的,我喜歡這個情節。它顯示了每個深度魚類的相對總丰度,以及每個物種對該總量的丰度。謝謝你 – Jesinsky