在R中,我正在尝试从图表中的共享变量中创建聚合值的bar plot
,如下所示:
counts3 <- aggregate(x = data1$Annualized.Booking, by = list(data1$Country), FUN = sum)
barplot(counts3, main="Booking Distribution by Region",
xlab="Regions", ylab="Annualized Bookings")
但是,我收到此错误消息:
哪个说它不是矩阵,我不明白。作为参考,这就是count3的样子:
有没有更简单的方法尝试这样做?或者我的矩阵/载体有什么误解?谢谢。
答案 0 :(得分:0)
model.evaluate
需要向量作为输入,但barplot
返回数据框。因此,您在调用aggregate
时需要明确访问这些向量。例如:
barplot
值得一看的是ggplot,它具有非常强的表现力
图形语法,例如它会自动执行聚合步骤。使用上面定义的data1 <- data.frame(bookings = c(100, 200, 300, 100, 200, 300),
country = c("a", "b", "a", "a", "b", "b"))
c3 <- aggregate(data1$bookings, list(data1$country), sum)
barplot(c3$x, names.arg = c3$Group.1)
数据框,这将生成您正在寻找的条形图:
data1
这里发生的是,你首先告诉R你想做一个ggplot
library(ggplot2)
ggplot(data = data1, aes(x = country, y = bookings)) + geom_col()
作为输入数据,data1
应该在x轴上结束,country
在y轴上结束。然后,您只需将可视化类型添加到绘图中。
答案 1 :(得分:0)
您正试图在bookings
上使用barplot
。尝试使用命名向量或矩阵。
示例,包含一些示例数据:
data.frame
您的错误:
counts3 <- data.frame(Group.1 = c("A", "B", "C", "D"), x = c(10, 20, 5, 15))
试试这个:
barplot(counts3, main = "Booking by Region", xlab = "Regions", ylab = "Value")
# Error in barplot.default(counts3, main = "Booking by Region", xlab = "Regions", :
# 'height' must be a vector or a matrix