質問内容(あなたが疑問に思っていること)が完全には把握できていませんので回答ではありません。
アドバイスです。
- "plt.boxplot(np.random.randn(20).reshape(-1,2))"を"plt.boxplot(np.**arange(4) **.reshape(-1,2))"とすると、何かピンとくるかもしれません。
reshape
については配列の次元数や大きさの操作をよく読むと、何か分かるかもしれません。
お願い
- 回答ではありませんので、ベストアンサーにはしないでください。
- 自力で解決できた場合は自己回答することを強くお勧めします。
[1,2,3,4]の描画結果
Python
1import numpy as np
2import matplotlib.pyplot as plt
3
4a = np.array([1,2,3,4])
5plt.boxplot(a)
6plt.show()

boxplot
での箱ひげ図について
一般的な「箱ひげ図」は以下の値を採用するようです。
- 最小、最大、中央、第一四分位(箱の下辺)、第三四分位(箱の上辺)に位置する値を採用する。
- 上記は、数値の組の先頭からそれぞれ0,1,0.5,0.25,0.75番目の率の位置にするものとする。
- 位置(番目)が小数の場合は、その前後に位置する2値に応じた重み付き平均値を採用する(別の考えもあり)。
参考:四分位数の求め方といろいろな例題
Python
1# 数値の組[1,2,3,4] の場合。数値の個数 n=4
2最小値=(n-1)*0 番目の値= 0 番目の値=1
3最大値=(n-1)*1 番目の値= 3 番目の値=4
4中央値=(n-1)*0.5 番目の値= 1.5 番目の値=1番目の値*0.5 +2番目の値*0.5 =2*0.5 +3*0.5 =2.5
5下辺値=(n-1)*0.25番目の値= 0.75番目の値=0番目の値*0.25+1番目の値*0.75=1*0.25+2*0.75=1.75
6上辺値=(n-1)*0.75番目の値= 2.25番目の値=2番目の値*0.75+3番目の値*0.25=3*0.75+4*0.25=3.25
この結果はboxplot
の描画結果と一致します。
上記の考察とあなたのコメントよりboxplot
関数で描画される結果は、あなたの考える箱ひげ図ではないと考えます。