连接箱线图的 "caps"
connect "caps" of box plot
你好,我有一个 python 函数来连接 2 个箱线图的 "caps",但我不能只连接高级大写字母,这就是我需要的(只连接高级大写字母)用粉红色的线),我非常感谢你的帮助,
我的代码是下一个
def set_boxes_lim_max_line(bp, w, c):
limit_sup_x = []
limit_sup_y = []
for p in bp['caps']:
data = p.get_data()
#x=bp['caps'][1].get_data()[0]
x=np.max([data[0].mean(),data[0].mean()])
#x=bp['boxes'][0].get_data()[0]
y = data[1].max()
limit_sup_x.append(x)
limit_sup_y.append(y)
plt.plot(limit_sup_x,limit_sup_y, color = c, linewidth = w)
#plt.plot(limit_sup_x, color = c, linewidth = w)
调用它的函数:
bp1 = plt.boxplot([sample1[i] for i in posiciones2], positions = (range(1, 3)), widths = 0.6)
set_box_color(bp1,'red')
# Agregar lineas caja roja
set_boxes_lim_max_line(bp1,1.2,'hotpink')#LINEA LIMITE SUPERIOR
set_boxes_q_min_line(bp1, 1.2, 'tomato') #LINEA "Q3" SUPERIOR CAJA
set_boxes_median_line(bp1, 1.2, 'seagreen')#LINEA MEDIANA
set_boxes_q_max_line(bp1, 1.2, 'darkred')#LINEA "Q1" INFERIOR CAJA
#set_boxes_q_min_line(bp1, 1.2, 'tomato') #LINEA LIMITE INFERIOR
这样做就可以了:
def set_boxes_lim_max_line(bp, w, c):
limit_sup_x = []
limit_sup_y = []
for p in bp['caps'][1::2]:
data = p.get_data()
#x=bp['caps'][1].get_data()[0]
x=np.max([data[0].mean(),data[0].mean()])
#x=bp['boxes'][0].get_data()[0]
y = data[1].max()
limit_sup_x.append(x)
limit_sup_y.append(y)
plt.plot(limit_sup_x,limit_sup_y, color = c, linewidth = w)
示例:
你好,我有一个 python 函数来连接 2 个箱线图的 "caps",但我不能只连接高级大写字母,这就是我需要的(只连接高级大写字母)用粉红色的线),我非常感谢你的帮助,
我的代码是下一个
def set_boxes_lim_max_line(bp, w, c):
limit_sup_x = []
limit_sup_y = []
for p in bp['caps']:
data = p.get_data()
#x=bp['caps'][1].get_data()[0]
x=np.max([data[0].mean(),data[0].mean()])
#x=bp['boxes'][0].get_data()[0]
y = data[1].max()
limit_sup_x.append(x)
limit_sup_y.append(y)
plt.plot(limit_sup_x,limit_sup_y, color = c, linewidth = w)
#plt.plot(limit_sup_x, color = c, linewidth = w)
调用它的函数:
bp1 = plt.boxplot([sample1[i] for i in posiciones2], positions = (range(1, 3)), widths = 0.6)
set_box_color(bp1,'red')
# Agregar lineas caja roja
set_boxes_lim_max_line(bp1,1.2,'hotpink')#LINEA LIMITE SUPERIOR
set_boxes_q_min_line(bp1, 1.2, 'tomato') #LINEA "Q3" SUPERIOR CAJA
set_boxes_median_line(bp1, 1.2, 'seagreen')#LINEA MEDIANA
set_boxes_q_max_line(bp1, 1.2, 'darkred')#LINEA "Q1" INFERIOR CAJA
#set_boxes_q_min_line(bp1, 1.2, 'tomato') #LINEA LIMITE INFERIOR
这样做就可以了:
def set_boxes_lim_max_line(bp, w, c):
limit_sup_x = []
limit_sup_y = []
for p in bp['caps'][1::2]:
data = p.get_data()
#x=bp['caps'][1].get_data()[0]
x=np.max([data[0].mean(),data[0].mean()])
#x=bp['boxes'][0].get_data()[0]
y = data[1].max()
limit_sup_x.append(x)
limit_sup_y.append(y)
plt.plot(limit_sup_x,limit_sup_y, color = c, linewidth = w)
示例: