我想通過標記 Q1、Q2、Q3、最小值和最大值來標記水平箱線圖。該網站上有很多答案,但每個答案都集中在垂直箱線圖上。這些是我的代碼如下:import matplotlib.pyplot as plt;import seaborn as sns;sns.set()from numpy import *;fig, (ax1,ax2) =plt.subplots(2)a = 1000+random.randn(1000)print(a)red_square = dict(markerfacecolor='r', marker='s')ax1.boxplot(a, vert=False, flierprops=red_square)plt.show()你能幫我嗎?
1 回答

呼如林
TA貢獻1798條經驗 獲得超3個贊
您可以使用matplotlib 中的boxplot_stats來獲取 Q1、Q2 和中位數(或者您基本上自己計算)。最小值和最大值不包括在內,您必須計算它。大致如下所示的內容應該有效:
import matplotlib.pyplot as plt;
import seaborn as sns;sns.set()
from numpy import *;
fig,ax1 =plt.subplots(1)
a = 1000+random.randn(1000)
red_square = dict(markerfacecolor='r', marker='s')
ax1.boxplot(a, vert=False, flierprops=red_square)
from matplotlib import cbook
data = cbook.boxplot_stats(a)
values = [data[0][i] for i in ['q1','med','q3']] + [min(a),max(a)]
for v in values:
? ? ax1.text(v,1.2,str(round(v,1)),fontsize=8,horizontalalignment='center')
添加回答
舉報
0/150
提交
取消