我想通过标记 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 回答
![?](http://img1.sycdn.imooc.com/533e4c3300019caf02000200-100-100.jpg)
呼如林
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
提交
取消