使用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
相关产品推荐
相关产品推荐

