汇总条形图

时间:2017-12-31 11:32:57

标签: r plot bar-chart

在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")

但是,我收到此错误消息:

Error Message

哪个说它不是矩阵,我不明白。作为参考,这就是count3的样子:

sample of count3

有没有更简单的方法尝试这样做?或者我的矩阵/载体有什么误解?谢谢。

2 个答案:

答案 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

enter image description here