2017-09-12 4 views
0

色で塗りつぶされたボックスプロットを表示すると同時に、その上に点(各データセットの平均値)を表示できます。matplotlib:塗りつぶしのボックスプロットとポイント表示

は、今まで私はそれらの平均の点で塗りつぶされていないバーを表示するsucceded:

import numpy as np 
import pandas as pdK 
import matplotlib.pyplot as plt 
from matplotlib import rcParams 
%matplotlib inline 

X = np.random.rand(20) 
Y = np.random.rand(20) 
Z = np.random.rand(20) 
X_ave=np.mean(X) 
Y_ave=np.mean(X) 
Z_ave=np.mean(X) 
plt.boxplot([X,Y,Z], patch_artist=False) 
plt.plot(1, X_ave,'*', markersize=15) 
plt.plot(2, Y_ave,'*', markersize=15) 
plt.plot(3, Y_ave,'*', markersize=15) 
#plt.boxplot(box_plot_data) 
plt.show() 

unfilled_boxPlots

私は真のpatch_artist =を設定することにより、ボックスプロットを記入すると、平均値が上書きされますボックスの色で表示され、もう表示されません。

X = np.random.rand(20) 
Y = np.random.rand(20) 
Z = np.random.rand(20) 
X_ave=np.mean(X) 
Y_ave=np.mean(X) 
Z_ave=np.mean(X) 
plt.plot(1, X_ave,'*', markersize=15) 
plt.plot(2, Y_ave,'*', markersize=15) 
plt.plot(3, Y_ave,'*', markersize=15) 
plt.boxplot([X,Y,Z], patch_artist=True) 
#plt.boxplot(box_plot_data) 
plt.show() 

filled_boxPlots

答えて

2

平均マーカーは箱ひげ図の箱の後ろに隠されています。マーカと比較して背景にボックスを配置すると、それらが再び表示されます。あなたが代わりに3か何かするマーカープロットのzorderを指定することができます。もちろん、

import numpy as np 
import pandas as pdK 
import matplotlib.pyplot as plt 

X = np.random.rand(20) 
Y = np.random.rand(20) 
Z = np.random.rand(20) 
X_ave=np.mean(X) 
Y_ave=np.mean(X) 
Z_ave=np.mean(X) 
plt.boxplot([X,Y,Z], patch_artist=True, boxprops=dict(facecolor="purple"), zorder=1) 
plt.plot(1, X_ave,'*', markersize=15) 
plt.plot(2, Y_ave,'*', markersize=15) 
plt.plot(3, Y_ave,'*', markersize=15) 

plt.show() 

enter image description here

:最も簡単な方法は、箱ひげ図のため

plt.boxplot([X,Y,Z], patch_artist=True, zorder=1) 

完全な例をzorderを指定することですそれより高い。

関連する問題