美文网首页
Python boxplot 设定每个boxplot的颜色

Python boxplot 设定每个boxplot的颜色

作者: 王叽叽的小心情 | 来源:发表于2020-10-22 14:42 被阅读0次

    目标:给每个boxplot设定不同的颜色和属性

    官方文档:https://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.boxplot.html#matplotlib.axes.Axes.boxplot

    切入点:可以看出是给在matplotlib.axes.Axes.boxplot中的boxprops进行参数设置,但是前提条件是要将patch_artist=True,将返回的结果按照版块进行绘制,说明文档:If False, produces boxes with the Line2D artist. Otherwise, boxes and drawn with Patch artists.

    想法:本来是想在boxprops中的facecolor中传入一个color list,但没成功,貌似在该参数下只能设置相同的颜色(需要求证),所以只能遍历绘图得到的patch,挨个进行设置,主要代码如下:

    # 分组箱线图,进行颜色设置
    bp = axs.boxplot(y_group, showfliers=False, widths=[i *0.25 for i in pos], 
         labels=None, positions=pos, patch_artist=True)
    [bp['boxes'][i].set(facecolor=color_list[i], alpha=0.7) for i in range(N)]
    # 其中y_group是一个[[1, 2, 3], [1,2,3,4,5], [8,9]]格式的,即三个箱线图的各自的分组数据,pos是自定义的箱线图的位置,color_list是每个颜色,N是箱线图的数目。
    # 当然也可以按照for循环进行挨个设置,也可以列表表达式
    

    其他一些参考资料
    箱线图样式设置:https://stackoverflow.com/questions/28740234/face-pattern-for-boxes-in-boxplots
    箱线图透明色设置: https://stackoverflow.com/questions/61501795/set-boxplot-boxes-facecolor-transparency-in-python-matplotlib
    箱线图颜色填充:https://stackoverflow.com/questions/20289091/python-matplotlib-filled-boxplots

    附上一个箱线图的解释


    箱线图分位数解释

    相关文章

      网友评论

          本文标题:Python boxplot 设定每个boxplot的颜色

          本文链接:https://www.haomeiwen.com/subject/fjgumktx.html