Python 在MatPlotLib中更改箱线图中线的长度

Python 在MatPlotLib中更改箱线图中线的长度,python,matplotlib,Python,Matplotlib,上图是报纸上的一个截图。为了实现类似的样式,我使用了matplotlib bp = plt.boxplot(data,sym='',widths=0.75, patch_artist=True) for median in bp['medians']: median.set(color='k', linewidth=1.5,) 但是我不能在中间位置设置第二条短线 有什么简单的方法来处理这个问题吗 您可以获得中线的坐标,并使用它们绘制一条额外的线,线宽更高,但只有原始线的一半长 imp

上图是报纸上的一个截图。为了实现类似的样式,我使用了matplotlib

bp = plt.boxplot(data,sym='',widths=0.75, patch_artist=True)

for median in bp['medians']:
    median.set(color='k', linewidth=1.5,)
但是我不能在中间位置设置第二条短线

有什么简单的方法来处理这个问题吗


您可以获得中线的坐标,并使用它们绘制一条额外的线,线宽更高,但只有原始线的一半长

import matplotlib.pyplot as plt
import numpy as np; np.random.seed(2)
data = np.random.normal(loc=3., size=(100,5))

bp = plt.boxplot(data,sym='',widths=0.75, patch_artist=True)

for median in bp['medians']:
    median.set(color='k', linewidth=1.5,)
    x,y = median.get_data()
    xn = (x-(x.sum()/2.))*0.5+(x.sum()/2.)
    plt.plot(xn, y, color="k", linewidth=10, solid_capstyle="butt", zorder=4)

plt.show()

请注意参数
solid_capstyle=“butt”,zorder=4
,这些参数确保该行在前景中,并且没有cap扩展