Python matplotlib:填充箱线图和点显示
我想显示用颜色填充的方框图,并且允许我在它们上面显示一个点(每个数据集的平均值) 到目前为止,我只成功地显示了未填充的条带平均点:Python matplotlib:填充箱线图和点显示,python,matplotlib,plot,boxplot,Python,Matplotlib,Plot,Boxplot,我想显示用颜色填充的方框图,并且允许我在它们上面显示一个点(每个数据集的平均值) 到目前为止,我只成功地显示了未填充的条带平均点: 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.
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()
一旦我通过设置patch_artist=True填充方框图,平均值将被方框的颜色覆盖,不再显示
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()
平均标记隐藏在箱线图的方框后面。将框放置在背景中,与标记进行比较,将再次显示它们。最简单的方法是为箱线图指定
zorder
plt.boxplot([X,Y,Z], patch_artist=True, zorder=1)
完整示例:
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()
当然,您也可以将标记图的
zorder
指定为3
或更高的值。平均标记隐藏在箱线图的框后面。将框放置在背景中,与标记进行比较,将再次显示它们。最简单的方法是为箱线图指定zorder
plt.boxplot([X,Y,Z], patch_artist=True, zorder=1)
完整示例:
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()
当然,您也可以将标记图的zorder
指定为3
或更高的值