为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

子衿沉夜 2023-08-22 10:33:09
我想通过标记 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')

https://img1.sycdn.imooc.com/64e41eae0001dd9b03610245.jpg

查看完整回答
反对 回复 2023-08-22
  • 1 回答
  • 0 关注
  • 83 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信