猿问

在 python 上的水平箱和晶须图上标记 Q1、Q2、Q3、最小值和最大值

我想通过标记 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()

你能帮我吗? 

子衿沉夜
浏览 84回答 1
1回答

呼如林

您可以使用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 cbookdata = 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')
随时随地看视频慕课网APP

相关分类

Python
我要回答