Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to plot histogram/ frequency-count of a vector with ggplot?

I want to plot with ggplot the frequency of values from a numeric vector. With plot() is quite straight forward but I can't get the same result with 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)

enter image description here

ggplot(dice_results) + geom_bar()
# Error: ggplot2 doesn't know how to deal with data of class numeric

Should I create a dataframe for ggplot() to plot my vector?

like image 386
CptNemo Avatar asked Sep 26 '13 10:09

CptNemo


2 Answers

Try the code below

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")
like image 68
Stas Prihod'co Avatar answered Sep 22 '22 19:09

Stas Prihod'co


Please look at the help page ?geom_histogram. From the first example you may find that this works.

qplot(as.factor(dice_results), geom="histogram")

Also look at ?ggplot. You will find that the data has to be a data.frame

like image 32
shadow Avatar answered Sep 25 '22 19:09

shadow