I'm trying to make a histogram of a simple list of numbers in python using ipython notebook and ggplot for python. Using pylab, it's easy enough, but I cannot get ggplot to work.
I'm using this code (based on the diamond histogram example, which does work for me):
from ggplot import *
a = [1, 1, 2, 1, 1, 4, 5, 6]
p = ggplot(aes(x='carat'), data=a)
p + geom_hist() + ggtitle("Histogram of Diamond Carats") + labs("Carats", "Freq")
Using ipython & pylab, I can make a histogram with just hist(a)
and it displays. How do I make a histogram come up using ggplot?
You can also make histograms by using ggplot2 , “a plotting system for R, based on the grammar of graphics” that was created by Hadley Wickham. This post will focus on making a Histogram With ggplot2.
Answer. Answer: It is relatively straightforward to build a histogram with ggplot2 thanks to the geom_histogram() function. Only one numeric variable is needed in the input.
Using ggplot in Python allows you to build visualizations incrementally, first focusing on your data and then adding and tuning components to improve its graphical representation.
To create a histogram in Python using Matplotlib, you can use the hist() function. What is this? This hist function takes a number of arguments, the key one being the bins argument, which specifies the number of equal-width bins in the range.
If you just want to make a histogram of the numbers in your vector 'a', there are a couple of problems.
First, ggplot accepts data in the form of a pandas Dataframe, so you need to build that first.
import pandas as pd
a = [1, 1, 2, 1, 1, 4, 5, 6]
df = pd.DataFrame(a, columns=['a'])
Second, the geom is geom_histogram()
not geom_hist()
. And finally, it looks like you're throwing in code from one of the example plots of the diamond data. You don't need that, so I've removed it.
from ggplot import *
p = ggplot(aes(x='a'), data=df)
p + geom_histogram(binwidth=1)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With