0
seabornやその他のライブラリを使用せずに、matplotlibでボックスプロットをグループ化する方法はありますか?グループ化ボックスプロットmatplotlib
次の例では、x軸に沿ってブロックを配置し、条件によってグループ化された値をプロットします(16個のボックスがあります)。海軍の色相論が成し遂げたように
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
blocks = 4
conditions = 4
ndatapoints = blocks * conditions
blockcol = np.repeat(list(range(1, conditions+1)), blocks)
concol = np.repeat(np.arange(1, conditions+1, 1), blocks)
trialcol = np.arange(1, ndatapoints+1, 1)
valcol = np.random.normal(0, 1, ndatapoints)
raw_data = {'blocks': np.repeat(list(range(1, conditions+1)), blocks),
'condition': list(range(1, conditions+1))*blocks,
'trial': np.arange(1, ndatapoints+1, 1),
'value': np.random.normal(0, 1, ndatapoints)}
df = pd.DataFrame(raw_data)
df
blocks condition trial value
0 1 1 1 1.306146
1 1 2 2 -0.024201
2 1 3 3 -0.374561
3 1 4 4 -0.093366
4 2 1 5 -0.548427
5 2 2 6 -1.205077
6 2 3 7 0.617165
7 2 4 8 -0.239830
8 3 1 9 -0.876789
9 3 2 10 0.656436
10 3 3 11 -0.471325
11 3 4 12 -1.465787
12 4 1 13 -0.495308
13 4 2 14 -0.266914
14 4 3 15 -0.305884
15 4 4 16 0.546730
例は見つかりませんでした。
を、それはあなたが望む内容を正確に把握するのは難しいのですが、 'seaborn.factorplot'は、あなたが望むように聞こえる何を実現。 –
それは本当です - それはまさに私が思いついたものです。しかし、私は海底なしでこれを作る方法を望んでいた。 – fffrost
matplotlibのbox plot関数は、 'pos' argをとります。これは、x軸を横切る各ボックスプロットの位置のシーケンスです。それを自分で計算する必要があります。 –