4

私はmatplotlibを初めて使用し、次の情報を使用してプロットを作成したいと考えています:

  1. 約 200 個の可変長ベクトルの中央値を結ぶ線 (入力)
  2. これらのベクトルの対応する分位数を結ぶ線。
  3. 対応するスプレッド (最大点と最小点) を結ぶ線。

つまり、基本的には連続箱ひげ図のようなものです。

ありがとう!

4

1 に答える 1

14

scipyand (質問でこれらのライブラリのみにタグを付けました) を使用matplotlibするのは少し冗長ですが、これを行う方法は次のとおりです (分位数に対してのみ行っています)。

import numpy as np
from scipy.stats import mstats
import matplotlib.pyplot as plt

# Create 10 columns with 100 rows of random data
rd = np.random.randn(100, 10)
# Calculate the quantiles column wise
quantiles = mstats.mquantiles(rd, axis=0)
# Plot it
labels = ['25%', '50%', '75%']
for i, q in enumerate(quantiles):
    plt.plot(q, label=labels[i])
plt.legend()

これにより、次のことが得られます。

ここに画像の説明を入力

それでは、Pandas ライブラリを試すように説得してみます :)

import numpy as np
import pandas as pd
# Create random data
rd = pd.DataFrame(np.random.randn(100, 10))
# Calculate all the desired values
df = pd.DataFrame({'mean': rd.mean(), 'median': rd.median(),
                   '25%': rd.quantile(0.25), '50%': rd.quantile(0.5),
                   '75%': rd.quantile(0.75)})
# And plot it
df.plot()

あなたは得るでしょう:

ここに画像の説明を入力

または、すべての統計を 1 行で取得できます。

rd.describe().T.drop('count', axis=1).plot()

ここに画像の説明を入力

注: count「5 番号の概要」の一部ではないため、削除しました。

于 2013-08-19T12:23:18.077 に答える