R用户第一次尝试创建简单的条形图,但我一直收到错误消息
'height' must be a vector or a matrix
我一直在尝试的条形图功能
barplot(data, xlab="Percentage", ylab="Proportion")
我输入了我的csv,数据如下:
34.88372093 0.00029997
35.07751938 0.00019998
35.27131783 0.00029997
35.46511628 0.00029997
35.65891473 0.00069993
35.85271318 0.00069993
36.04651163 0.00049995
36.24031008 0.0009999
36.43410853 0.00189981
...
我在哪里错了?
提前致谢!
编辑:
dput(head(data))输出:
structure(list(V1 = c(34.88372093, 35.07751938, 35.27131783,
35.46511628, 35.65891473, 35.85271318), V2 = c(0.00029997, 0.00019998,
0.00029997, 0.00029997, 0.00069993, 0.00069993)), .Names = c("V1",
"V2"), row.names = c(NA, 6L), class = "data.frame")
和barplot(as.matrix(data))生成了一个图表,其中所有数据都是一个条形,而不是单独条形图上的每个数据。
答案 0 :(得分:7)
您可以指定要绘制的两个变量,而不是传递整个数据框,如下所示:
data <- structure(list(V1 = c(34.88372093, 35.07751938, 35.27131783, 35.46511628, 35.65891473, 35.85271318),
V2 = c(0.00029997, 0.00019998, 0.00029997, 0.00029997, 0.00069993, 0.00069993)),
.Names = c("V1", "V2"), row.names = c(NA, 6L), class = "data.frame")
barplot(data$V2, data$V1, xlab="Percentage", ylab="Proportion")
或者,您可以使用ggplot
执行此操作:
library(ggplot2)
ggplot(data, aes(x=V1, y=V2)) + geom_bar(stat="identity") +
labs(x="Percentage", y="Proportion")
答案 1 :(得分:2)
整个数据框格式可能是错误的,由于我分别添加了列并将数据框组合在一起,所以我也发生了同样的事情。
table.values = c(value1, value2,.......)
table = matrix(table.values,nrow=number of rows ,byrow = T)
colnames(table) = c("column1","column2",........)
row.names(table) = c("row1", "row2",............)
barplot(table, beside = T, xlab= "X-axis",ylab= "Y-axis")