Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to make a histogram in ipython notebook using ggplot2 (for python)

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?

like image 379
Amandasaurus Avatar asked Oct 15 '13 09:10

Amandasaurus


People also ask

Can you build a histogram using ggplot2?

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.

Which method is used to create a histogram using 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.

Can I use ggplot2 in Python?

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.

How do you code a histogram in Python?

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.


1 Answers

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)

enter image description here

like image 148
Aman Avatar answered Oct 23 '22 11:10

Aman