2015-09-04 67 views
1

以下報道here我試圖創建一個覆蓋散點圖boxplot。熊貓boxplot封面/覆蓋matplotlib圖

但是當我運行:

In [27]: table1.t_in[table1.duration==6] 
Out[27]: 
counter 
7  308.351304 
9  305.354920 
14 307.832732 
15 332.097405 
21 309.711144 
22 308.227617 
23 317.342377 
24 306.140126 
25 339.185127 
27 336.411869 
30 313.287353 
Name: t_in, dtype: float64 
In [28]: table1.t_in[table1.duration==7] 
Out[28]: 
counter 
10 401.891105 
11 384.290236 
13 387.516037 
17 369.366080 
18 383.584934 
19 357.466159 
20 380.888071 
26 399.989748 
34 353.118944 
Name: t_in, dtype: float64 
In [29]: fig,ax=plt.subplots() 
    ...: 
    ...: for i in [6,7]: 
    ...:  y = table1.t_in[table1.duration==i] 
    ...:  # Add some random "jitter" to the x-axis 
    ...:  x = np.random.normal(i, 0.03, size=len(y)) 
    ...:  ax.plot(x, y, 'r.', alpha=0.5) 
    ...:  
    ...: bp = table1.boxplot(column='t_in',by='duration',grid=False,ax=ax) 

我得到:enter image description here

,如果我只跳過最後一行我得到: enter image description here

我如何繪製像鏈接的問題?

回答

2

使用ipython Notebook。我嘗試了boxplot-matplotlib的Methode。你不能包含for循環。但希望它有幫助。

import numpy as np 
import pandas as pd 
import matplotlib.pyplot as plt 
%matplotlib inline 

# data 
table1 = pd.DataFrame({"t_in":[308.351304, 305.354920, 307.832732, 
          332.097405, 309.711144, 308.227617, 
          317.342377, 306.140126, 339.185127, 
          336.411869, 313.287353, 401.891105, 
          384.290236, 387.516037, 369.366080, 
          383.584934, 357.466159, 380.888071, 
          399.989748, 353.118944]}, 
         index=[7,9,14,15,21,22,23,24,25,27,30, 
           10,11,13,17,18,19,20,26,34]) 

table1["duration"] = np.where(table1["t_in"]<353, 6, 7) 

# plotting 
fig,ax = plt.subplots() 
colors = ["red", "blue"] 
for i in [6,7]: 
    y = table1.t_in[table1.duration==i] 
    # Add some random "jitter" to the x-axis 
    x = np.random.normal(i, 0.03, size=len(y)) 
    ax.scatter(x, y, c=colors[i-6], alpha=0.5) 

ax.boxplot([table1.t_in[table1.duration==6].values,table1.t_in[table1.duration==7].values], positions=[6,7]) 
plt.show() 

enter image description here

+0

這個完美的作品!謝謝! – marpis