2016-10-14 11 views
0

sklearnを使用し、matplotlibを使用してボックスプロットを実行しようとしました。Matplotlibからの意図しないノッチ付きボックスプロット、シーボーンからのエラー

nps = np.array(all_s) 
npd = [dd for dd in all_d] 
plt.boxplot(nps.T, npd) 
plt.show() 

enter image description here

しかし、それは切り欠き出てくると、上部または下部の境界は、奇数を消します。また、Seabornにプロットしようとすると、次のエラーが表示されます。Buffer has wrong number of dimensions (expected 1, got 2) 私はここで何が欠けていますか?

編集:追加データ

all_d = range(1,11)  

all_s = 

    [[0.31111111111111112, 
     0.38333333333333336, 
     0.2722222222222222, 
     0.29999999999999999, 
     0.32222222222222224, 
     0.32777777777777778, 
     0.3888888888888889, 
     0.36312849162011174, 
     0.37430167597765363, 
     0.37430167597765363], 
    [0.57222222222222219, 
     0.6333333333333333, 
     0.6166666666666667, 
     0.62777777777777777, 
     0.68333333333333335, 
     0.62777777777777777, 
     0.69444444444444442, 
     0.61452513966480449, 
     0.6033519553072626, 
     0.6033519553072626], 
    [0.73333333333333328, 
     0.82222222222222219, 
     0.68888888888888888, 
     0.7055555555555556, 
     0.77777777777777779, 
     0.73333333333333328, 
     0.81666666666666665, 
     0.73743016759776536, 
     0.72625698324022347, 
     0.72067039106145248], 
    [0.81666666666666665, 
     0.89444444444444449, 
     0.87222222222222223, 
     0.87777777777777777, 
     0.87777777777777777, 
     0.78888888888888886, 
     0.85555555555555551, 
     0.84916201117318435, 
     0.84916201117318435, 
     0.82681564245810057], 
    [0.90555555555555556, 
     0.93888888888888888, 
     0.87777777777777777, 
     0.91666666666666663, 
     0.90555555555555556, 
     0.87222222222222223, 
     0.90555555555555556, 
     0.88268156424581001, 
     0.87709497206703912, 
     0.8994413407821229], 
    [0.89444444444444449, 
     0.97222222222222221, 
     0.83888888888888891, 
     0.91666666666666663, 
     0.89444444444444449, 
     0.84444444444444444, 
     0.92777777777777781, 
     0.92737430167597767, 
     0.8938547486033519, 
     0.92178770949720668], 
    [0.90555555555555556, 
     0.96111111111111114, 
     0.93888888888888888, 
     0.91666666666666663, 
     0.91666666666666663, 
     0.90000000000000002, 
     0.93333333333333335, 
     0.95530726256983245, 
     0.8994413407821229, 
     0.92737430167597767], 
    [0.90555555555555556, 
     0.96111111111111114, 
     0.92222222222222228, 
     0.92222222222222228, 
     0.91666666666666663, 
     0.93888888888888888, 
     0.93333333333333335, 
     0.96648044692737434, 
     0.92737430167597767, 
     0.92737430167597767], 
    [0.93333333333333335, 
     0.97777777777777775, 
     0.94999999999999996, 
     0.93888888888888888, 
     0.94444444444444442, 
     0.97777777777777775, 
     0.94999999999999996, 
     0.98882681564245811, 
     0.95530726256983245, 
     0.94413407821229045], 
    [0.91666666666666663, 
     0.97777777777777775, 
     0.94999999999999996, 
     0.94444444444444442, 
     0.92777777777777781, 
     0.98333333333333328, 
     0.94999999999999996, 
     0.97765363128491622, 
     0.96089385474860334, 
     0.94413407821229045]] 
+0

あなたはあなたのデータのサンプルを表示する必要があります。 – BrenBarn

+0

all_sとは何ですか?all_sとは何か、完全なコードまたは再現可能なコードを入力してください。 – plumSemPy

答えて

0

私はそれを理解し終わった! .boxplotの第2引数がnotchであることを指摘してくれたBrenBarnに感謝します。私は次のようでした:

nps = np.array(all_s) 
npd = [dd for dd in all_d] 
box=sns.boxplot(data=nps.T) 
box.set_xticklabels(npd) 
plt.show() 

enter image description here

2

boxplotへの2番目の引数はnotchです。空でないリストを渡すことによって真の値を渡しているので、ノッチが表示されます。私はあなたの意図がnpdを渡すことであるかどうか分からない。

+0

私はnpdを "x"値、またはxラベルとして渡そうとしていました。どうすればいい?私は 'sns.boxplot(nps.T、names = npd)'の例を見ましたが、その後APIが変更されました。 –

+0

答えは上記を参照してください。 boxplotの第2引数がノッチであることを指摘してくれてありがとう! –

+0

@FlowNuwenこれで問題が解決した場合は、それを緑色のチェックマークが付いた回答としてマークして、今後の読者にはあいまいでないようにしてください。 –

関連する問題