> 技术文档 > 【Python】绘制小提琴、箱线和散点的组合图

【Python】绘制小提琴、箱线和散点的组合图

示例图:

示例代码:

import numpy as npimport pandas as pdimport seaborn as snsimport matplotlib.pyplot as plt# 创建示例数据np.random.seed(42)data = pd.DataFrame({ \'Group\': np.repeat([\'X\', \'Y\', \'Z\'], 50), \'Score\': np.concatenate([ np.random.normal(80, 10, 50), np.random.normal(60, 8, 50), np.random.normal(90, 5, 50) ])})# 自定义颜色设置violin_colors = [\"pink\", \"lightblue\", \"lightgreen\"] # 小提琴图颜色box_colors = [\"white\", \"white\", \"white\"] # 箱线图颜色point_colors = [\"pink\", \"lightblue\", \"lightgreen\"] # 散点颜色# 设置样式sns.set(style=\"whitegrid\")plt.figure(figsize=(10, 6))# 1. 绘制小提琴图sns.violinplot( x=\'Group\', y=\'Score\', hue=\'Group\', data=data, palette=violin_colors, inner=None, width=0.6, legend=False, saturation=0.75 # 控制颜色饱和度)# 2. 绘制箱线图sns.boxplot( x=\'Group\', y=\'Score\', hue=\'Group\', data=data, palette=box_colors, width=0.15, boxprops={\'alpha\': 0.7}, legend=False, linewidth=2)# 3. 绘制散点图sns.stripplot( x=\'Group\', y=\'Score\', hue=\'Group\', data=data, palette=point_colors, jitter=True, size=4, alpha=0.7, legend=False, edgecolor=\'auto\', linewidth=0.5)# 添加标题和标签plt.title(\'Custom Colored Raincloud Plot\', fontsize=14, pad=20)plt.xlabel(\'Group\', fontsize=12)plt.ylabel(\'Score\', fontsize=12)# 调整布局plt.tight_layout()plt.show()

其中:

violin_colors = [\"pink\", \"lightblue\", \"lightgreen\"] # 小提琴图颜色box_colors = [\"white\", \"white\", \"white\"] # 箱线图颜色point_colors = [\"pink\", \"lightblue\", \"lightgreen\"] # 散点颜色

可根据需求修改各图的配色