条形图的平均值为字符串x轴

时间:2018-03-18 18:58:06

标签: r plot

所以我在创建一个以字符串为x轴,高度为平均值的条形图时遇到了一些麻烦。

所以说我有一个名为fruits = c("strawberry", "apple", "strawberry", "banana", "apple"....)

的专栏

以及其count = c(2, 3, 4, 2,...)

的相应列

我已经尝试过了

barplot(as.numeric(fruits$amount), names.arg = fruits$type)

但这似乎为每一次出现的水果都提供了一个标准。所以即使我只有大约10种水果,我也会得到100多个酒吧。

我还尝试过将其转换成桌面并绘制图表,但这也不起作用。

test <- table(as.numeric(fruits$amount), row.names = fruits$type)
barplot(test)

我是R的新手,所以如果这是一个明显的修复/愚蠢的问题,我会发出警告。有什么建议?谢谢!

2 个答案:

答案 0 :(得分:2)

也许这会有所帮助:

fruits <- data.frame(amount=c(2,3,5,1,7), type=c("Strawberry",
                                  "Apple", "Pear", "Banana", "Orange"))

b <- barplot(as.numeric(fruits$amount), names.arg = fruits$type,
        horiz = T, las=1, xlim=c(0,10), col="steelblue")

abline(v=mean(fruits$amount), col="red", lwd=2)
axis(1,mean(fruits$amount), col.axis ="red")
text(y = b, x = fruits$amount,
          pos = 4, cex = 2, col="darkblue")

输出是: enter image description here

答案 1 :(得分:1)

#DATA
df1 = data.frame(fruits = c("strawberry", "apple", "strawberry", "banana", "apple"), 
                 counts = c(2, 3, 4, 2, 4))

#Summarize
temp = aggregate(counts~fruits, df1, sum)

#Plot
barplot(temp[["counts"]], names.arg = temp[["fruits"]], las = 1, horiz = TRUE)