绘制python中的框图而不分组数据

时间:2016-02-12 14:37:32

标签: python matplotlib list-comprehension boxplot

我想根据存储在另一个数组(xldata['yaxis_data'])中的1,0映射,为数据框one_zero_map中的变量绘制一个方框图。

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

我不确定的原因是我猜测如果我直接输入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)

为了更清楚我正在寻找什么,我正在寻找相当于R的Python,就像这样

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

或phylab等效的graphlab为

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

1 个答案:

答案 0 :(得分: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')