2015-10-25 32 views
6

いくつかの実行結果を含むボックスプロットを作成する必要があります。これらの実行ごとに、最小出力、最大出力、平均出力、標準偏差があります。つまり、ラベル付きのボックスプロットが16個必要です。最小、最大、平均、標準偏差のボックスプロット

examplesこれまで私は数値分布をプロットしていましたが、私の場合はこれが実現できません。

Python(Matplotlib)/ Rでこれを行う方法はありますか?

+2

箱ひげ図は、変位値を示しています。あなたはあなたが持っているものからこれらを引き出すことはできません。平均、最小、最大、およびsdのボックスプロットの派生物を作成することに反対することをお勧めします。ボックスプロットに精通している人々を混乱させるからです。私は平均値、最小値、最大値を(おそらく異なる記号や大きさの)点とエラーバーとしてのsdで表現します。 – Roland

答えて

12

上記の@Rolandの答えは重要です。ボックスプロットは根本的に異なる量を示していますが、あなたが持っている量を使って同様のプロットを作成すると、ユーザーを混乱させる可能性があります。積まれたエラーバープロットを使ってこの情報を表現するかもしれません。例えば:

import matplotlib.pyplot as plt 
import numpy as np 

# construct some data like what you have: 
x = np.random.randn(100, 8) 
mins = x.min(0) 
maxes = x.max(0) 
means = x.mean(0) 
std = x.std(0) 

# create stacked errorbars: 
plt.errorbar(np.arange(8), means, std, fmt='ok', lw=3) 
plt.errorbar(np.arange(8), means, [means - mins, maxes - means], 
      fmt='.k', ecolor='gray', lw=1) 
plt.xlim(-1, 8) 

enter image description here

+0

'errorbar()'( 'np.arange(8)')の最初の引数にnumpyが使われる理由はありますか? matplotlibはリストを内部的に使用していると思います(リストのリスト)。私が間違っていれば私を修正してください。 – Ralf

+0

matplotlibはnumpy配列を内部的に使用し、入力をnumpy配列に変換します。たとえば、 '' type(plt.plot(range、10)、range(10)).get_xdata() numpy.ndarray'' – jakevdp

関連する問題