我想用 ggplot 绘制数值向量的值的频率。使用plot()
非常简单,但我无法使用 ggplot 获得相同的结果。
library(ggplot2)
dice_results <- c(1,3,2,4,5,6,5,3,2,1,6,2,6,5,6,4)
hist(dice_results)
ggplot(dice_results) + geom_bar()
# Error: ggplot2 doesn't know how to deal with data of class numeric
我应该为ggplot()
创建一个数据框来绘制我的矢量吗?
答案 0 :(得分:11)
尝试以下代码
library(ggplot2)
dice_results <- c(1,3,2,4,5,6,5,3,2,1,6,2,6,5,6,4,1,3,2,4,6,4,1,6,3,2,4,3,4,5,6,7,1)
ggplot() + aes(dice_results)+ geom_histogram(binwidth=1, colour="black", fill="white")
答案 1 :(得分:8)
请查看帮助页?geom_histogram
。从第一个例子中你可能会发现这是有效的。
qplot(as.factor(dice_results), geom="histogram")
另请参阅?ggplot
。您会发现数据必须是data.frame
答案 2 :(得分:0)
如果您想手动控制垃圾箱的数量:
ggplot() +
geom_histogram(aes(x = dice_results, y = ..density..), bins = 5)