所以我在创建一个以字符串为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的新手,所以如果这是一个明显的修复/愚蠢的问题,我会发出警告。有什么建议?谢谢!
答案 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")
答案 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)