Species Dbh Height
1 DF 383.7143 254.3036
2 ES 403.3333 280.0000
3 F 372.0000 270.0000
4 FG 381.5000 275.0000
5 GF 351.5838 242.6522
6 HW 209.0000 198.0000
7 LP 232.8571 218.3333
8 PP 568.5000 330.0000
9 SF 136.4286 154.1000
10 WC 375.0757 234.8777
11 WL 340.0588 252.5714
12 WP 319.7273 251.3939
我想将上面的数据转换为像这样的条形图。物种作为箱子和dbh,高度作为每个箱子的柱子。
我使用了代码:
aggregate(ufc[,4:5],ufc[3],mean,na.rm=TRUE)
获取上述数据集
我只能使用此代码一次获得一个变量:
barplot(ufc.means$Height, col=rainbow(20),
names.arg=(ufc.means$Species), las=2,main="Height")
答案 0 :(得分:11)
首先,不要双重发帖!如有必要,请编辑上一个问题,而不是发布新问题。
其次,您提到的错误消息in your earlier post非常明显。这是错误消息:
barplot.default中的错误(ufc.means,col = rainbow(20),names.arg =(ufc.means $ Species),:'height'必须是向量或矩阵
仔细阅读最后一部分: 'height' must be a vector or a matrix
,但您尝试使用data.frame
。因此,解决方案很简单:在使用data.frame
之前将barplot
转换为矩阵。
假设您的data.frame
被命名为“mydf”:
mymat <- t(mydf[-1])
colnames(mymat) <- mydf[, 1]
barplot(mymat, beside = TRUE)
结果: