我一直试图创建一个风筝图表失败。我想展示在每个深度水平(820,1208,1750和2209米)观察到的每种鱼类(a-f)的总数。我在kiteChart
中尝试了plotrix
,但无法确定如何将数据设置为正确的格式以使其正常工作。
我曾尝试使用以下内容在论坛中关注其他帖子,但它不起作用:
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")
答案 0 :(得分:2)
鉴于kiteChart
中的'时间轴'似乎是离散的而不是连续的(参见上面评论中的小例子),我想到了另一种可视化数据的方法。如果是一个区域图,它将为您提供连续的深度。
library(ggplot2)
ggplot(data = X, aes(x = Depth, y = Total, fill = Species)) +
geom_area(position = "stack") +
coord_flip() +
scale_x_reverse()
答案 1 :(得分: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")
它在我的安装上生成以下图表: