如何在同一画布中绘制两个joyplot(脊线图)展示不同Z属性的Rg分布
多类别脊线图同画布绘制方案
你当前两次调用joyplot会默认各自生成独立画布,想要两类数据在同一画布展示,只需要先合并数据集添加类别标签,单次调用接口通过hue参数分组渲染即可。
调整后完整代码
import pandas as pd import numpy as np import matplotlib.pyplot as plt from joypy import joyplot import seaborn as sns # 分别给两类数据添加类别标识 df_iso = pd.DataFrame(data=d_iso) df_iso['category'] = 'Z1' df_atac = pd.DataFrame(data=d_atac) df_atac['category'] = 'Z2' # 合并为总数据集 df_total = pd.concat([df_iso, df_atac], ignore_index=True) # 单次调用joyplot绘制两类数据 fig, axes = joyplot( data=df_total, by='temperature', column='Rg', hue='category', legend=True, color=['#1f77b4', '#ff7f0e'], # Z1、Z2对应配色,可自行修改 figsize=(12, 8), alpha=0.7 # 填充透明度,避免重叠遮挡 ) plt.title('Ridgeline plot of Rg histograms') plt.show()
可调参数说明
color:列表内的两个色值分别对应Z1、Z2两类的填充色,可替换为任意合法颜色值alpha:取值范围0-1,数值越低透明度越高,可根据重叠情况调整- 如果需要调整脊线的重叠间距,可添加
overlap参数,数值越大重叠程度越高
内容的提问来源于stack exchange,提问作者bad_chemist
相关产品推荐
相关产品推荐

