Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中计数表的箱线图_Python_Python 3.x_Pandas_Matplotlib_Ggplot2 - Fatal编程技术网

Python中计数表的箱线图

Python中计数表的箱线图,python,python-3.x,pandas,matplotlib,ggplot2,Python,Python 3.x,Pandas,Matplotlib,Ggplot2,在Python中,我有一个计数表作为dataframe,我想将我的分布图绘制为箱线图。例如: df=pandas.DataFrame.from_items([('Quality',[29,30,31,32,33,34,35,36,37,38,39,40]), ('Count', [3,38,512,2646,9523,23151,43140,69250,107597,179374,840596,38243])]) 我通过计数重复我的质量值来“解决”它。但我认为这不是一个好方法,我的数据帧变得非

在Python中,我有一个计数表作为dataframe,我想将我的分布图绘制为箱线图。例如:

df=pandas.DataFrame.from_items([('Quality',[29,30,31,32,33,34,35,36,37,38,39,40]), ('Count', [3,38,512,2646,9523,23151,43140,69250,107597,179374,840596,38243])])
我通过计数重复我的质量值来“解决”它。但我认为这不是一个好方法,我的数据帧变得非常大

在R中有一条直线:

ggplot(df, aes(x=1,y=Quality,weight=Count)) + geom_boxplot()
这将输出:

我的目的是比较不同群体的分布情况
Python也能这样解决它吗?

你想看什么?下面的箱线图将返回下图

如果您想查看按计数加权的质量分布,可以尝试绘制历史图:

plt.figure()
df_hist = plt.hist(df.Quality, bins=10, range=None, normed=False, weights=df.Count)

看起来python有一个
ggplot
接口,也许同样的语法也可以:我更新了我的问题并添加了R中的绘图。它现在看起来不是很好,但它只是一个示例。我已经看到了ggplot,但是我想避免使用很多不同的包。我认为pandas和matplotlib非常强大,我想知道为什么在这些包中不可能实现……使用python生成的
boxplot
是否与R获得的类似?我的意思是,绘图是否必须与您为给定数据发布的图像相同?如果我用python绘制计数表,并且它假设我的列是独立的。所以它返回一个计数和质量的箱线图,这在我的例子中没有意义。我需要一个箱线图,因为我想比较多个样本的分布。我更新了我的问题,并在最后添加了我想要的情节。
plt.figure()
df_hist = plt.hist(df.Quality, bins=10, range=None, normed=False, weights=df.Count)