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