matplotlib:填充箱线图和点显示
matplotlib: filled boxplot and point display
我想显示用颜色填充的箱形图,并允许我在它们上面显示一个点(每个数据集的平均值)。
到目前为止,我只成功显示了带有平均点数的未填充条:
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
或任何更高的值。
我想显示用颜色填充的箱形图,并允许我在它们上面显示一个点(每个数据集的平均值)。
到目前为止,我只成功显示了带有平均点数的未填充条:
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
或任何更高的值。