You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用matplotlib修改小提琴图单个琴体的最大、最小、均值线颜色

单个小提琴图统计线样式调整方案

violinplot 返回的 cbars(极值连线)、cmins(最小值线)、cmaxes(最大值线)、cmedians(中位数线)、cquantiles(分位数线)均为LineCollection类型,内部存储的线段顺序和输入的数据集顺序完全一一对应,可以通过对应方法单独修改单个琴体对应线条的样式:

import matplotlib.pyplot as plt
import numpy as np

# 模拟4组输入数据,对应4个小提琴
tmp_list = [np.random.normal(0, std, 100) for std in range(1, 5)]
fig, ax = plt.subplots()
violin_parts = ax.violinplot(tmp_list, showmedians=True, quantiles=[[0.99], [0.99], [0.99],[0.99]])

# 示例1:给4个小提琴的最大值线分别设置红、绿、蓝、橙4种颜色
custom_max_colors = ['#e74c3c', '#2ecc71', '#3498db', '#f39c12']
violin_parts['cmaxes'].set_colors(custom_max_colors)
violin_parts['cmaxes'].set_linewidth(1.6)
violin_parts['cmaxes'].set_alpha(1)

# 示例2:仅修改第2个小提琴的中位数线颜色(索引从0开始,第2个对应索引1)
median_colors = violin_parts['cmedians'].get_colors()
median_colors[1] = '#9b59b6'
violin_parts['cmedians'].set_colors(median_colors)

# 其他类型线条的修改逻辑完全一致:
# 最小值线修改调用 violin_parts['cmins'] 的对应方法
# 极值连线修改调用 violin_parts['cbars'] 的对应方法
# 分位数线修改调用 violin_parts['cquantiles'] 的对应方法

# 若需要单独设置每个线条的线宽/透明度,可调用对应方法传入数值列表:
# violin_parts['cmedians'].set_linewidths([1, 2, 1.5, 1.2])
# violin_parts['cmedians'].set_alphas([0.8, 1, 0.9, 0.7])

plt.show()

内容的提问来源于stack exchange,提问作者Tommy95

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 07:09:02