如何在ipython notebook中使用ggplot2制作直方图(用于Python)

8
我想在Python中使用IPython Notebookggplot for Python制作一个简单数字列表的直方图。使用pylab很容易,但我无法让ggplot工作。
我正在使用这段代码(基于钻石直方图示例,它对我有效):
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")

使用ipython和pylab,我只需使用hist(a)就可以制作直方图并显示出来。如何使用ggplot制作出直方图?

你是因为 ggplot 的风格而想使用它,还是有其他原因?如果是前者,你可以尝试 mpltools,这是一个 matplotlib 扩展,可以模仿 ggplot 的风格(请参见 http://tonysyu.github.io/mpltools/auto_examples/style/plot_ggplot.html)。 - Jakob
我主要想使用ggplot,因为它看起来很有趣。 - Amandasaurus
2个回答

17

如果您只是想绘制向量“a”中数字的直方图,那么有几个问题。

首先,ggplot接受以pandas Dataframe形式呈现的数据,因此您需要首先构建它。

import pandas as pd
a = [1, 1, 2, 1, 1, 4, 5, 6]
df = pd.DataFrame(a, columns=['a'])

第二,使用的图形是geom_histogram()而不是geom_hist()。最后,似乎您在将钻石数据的示例图形代码混入其中。您不需要那个,因此我已将其删除。

from ggplot import *
p = ggplot(aes(x='a'), data=df)
p + geom_histogram(binwidth=1)

输入图像描述


8
你在笔记本中加入第一个命令是:

%matplotlib inline

了吗?

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接