如何实现ydata-profiling对比报告的直方图并排显示而非单页?
解决ydata-profiling对比报告直方图并排显示问题
问题描述
我想生成一份对比报告,让直方图像ydata.ai教程里的Ferritin变量示例那样并排展示,但实际复现时直方图只以单页形式显示:
当前输出:单页直方图

预期输出:并排直方图

我试过不同版本的ydata-profiling,也查过官方GitHub仓库,但问题仍未解决。
代码示例
import ydata_profiling print(ydata_profiling.__version__) # 输出 'v4.1.0' import pandas as pd import numpy as np from ydata_profiling import ProfileReport # 生成原始数据 df = pd.DataFrame(dict( Ferritin=np.random.normal(1,10,size=200) )) # 生成变换后数据 df_new = pd.DataFrame(dict( Ferritin=np.random.normal(1,10,size=200) )) # 创建原始报告 original_report = ProfileReport(df, title="Original Data") original_report.to_file("original_report.html") # 创建变换后报告并生成对比报告 transformed_report = ProfileReport(df_new, title="Transformed Data") comparison_report = original_report.compare(transformed_report) # comparison_report.to_file("original_vs_transformed.html") comparison_report
解决方法
针对ydata-profiling v4.1.0版本,要实现直方图并排显示,需在创建ProfileReport时指定对比模式的配置参数,具体操作如下:
1. 自定义配置启用并排直方图
通过Settings类定义配置,开启对比视图的并排显示逻辑:
from ydata_profiling.config import Settings # 自定义配置:设置对比视图的直方图为并排模式 config = Settings( plot=dict( histogram=dict( compare=dict( type="side-by-side" # 指定并排显示类型 ) ) ), comparison=dict( layout="side-by-side" # 确保对比视图整体布局为并排 ) )
2. 应用配置生成对比报告
修改原代码,创建报告时传入上述配置:
# 用自定义配置创建两份报告 original_report = ProfileReport(df, title="Original Data", config=config) transformed_report = ProfileReport(df_new, title="Transformed Data", config=config) # 生成并保存对比报告 comparison_report = original_report.compare(transformed_report) comparison_report.to_file("original_vs_transformed.html") comparison_report
3. 备选方案
如果上述配置不生效,可尝试降级到ydata-profiling v4.0.0版本,部分用户反馈该版本的对比视图默认启用并排直方图。
内容的提问来源于stack exchange,提问作者dominik-bursy
相关产品推荐
相关产品推荐

