2016-02-12 73 views
0

我想根据存储在另一个数组(one_zero_map)中的1,0映射为数据帧xldata['yaxis_data']中的变量绘制箱形图。在python中绘制箱子图而不分组数据

我有一个工作代码,我只是不知道这是否是最好的方法。任何帮助都会很棒。

原因,我不确定是我猜测应该有箱线图来理解我想,如果我直接输入one_zero_mapxldata['yaxis_data']不会产生good_ones和bad_ones,然后把它们放在一个名为列表直接的方式final_list

%matplotlib inline 
import matplotlib.pyplot as plt 

good_ones=[val for ind, val in zip(one_zero_map,xldata['yaxis_data']) if ind==1] 
bad_ones=[val for ind, val in zip(one_zero_map,xldata['yaxis_data']) if ind==0] 

final_list=[good_ones,bad_ones] 

plt.boxplot(final_list) 

只是要什么我寻找更清晰,我要寻找的Python相当于R是这样

# Boxplot of MPG by Car Cylinders 
boxplot(mpg~cyl,data=mtcars, main="Car Milage Data", 
xlab="Number of Cylinders", ylab="Miles Per Gallon") 

或phython相当于graphlab的as

sales.show(view='BoxWhisker Plot',x='zipcode',y='price') 

回答

1

您可以直接从pandas DataFrames中使用boxplot方法。此代码等同于您的R示例:

# statsmodels only needed to get the R mtcars dataset 
import statsmodels.api as sm 
mtcars = sm.datasets.get_rdataset('mtcars').data 

mtcars.boxplot('mpg', by='cyl') 
+0

工程很好。 (虽然给出了一些问题,因为我在我的数据中有NAs,但我可以修复它)。当我在谷歌上搜索'python boxplot'时,前几个结果只是阴谋和matplotlib,但这个简单而优雅的解决方案似乎并没有出现。我想关键是要搜索'熊猫盒子' – PagMax