SuperAPI AI 工具集

python-visuals

数据与分析

查看项目

更新于 10-15 20:32

技能介绍

用途:在 Power BI(PBIR)报告中创建 Python 视觉对象,用 matplotlib/seaborn 脚本渲染静态 PNG 图像。所有报告修改必须经由 pbir 工具;PBIR 元数据仅用于诊断,若 pbir 不可用或缺少所需操作,应停止并报告缺口,禁止直接编辑报告 JSON。

主要能力:视觉标识为 visualType: pythonVisual,数据角色为 Values(可绑定多列与度量值),自动注入 pandas DataFrame 变量 dataset,行上限 150,000,输出 72 DPI 静态 PNG,无交互。官方建议优先用 seaborn 而非原生 matplotlib,语法更简洁、默认样式更好。

使用方式:先用 pbir add visual pythonVisual 添加视觉对象并绑定数据,再编写脚本,最后注入并校验。关键规则:plt.show() 必须作为脚本最后一行,否则不渲染;dataset 自动注入,勿自行创建;列名需匹配绑定的 nativeQueryRef 显示名;仅最后一次 plt.show() 生效,不支持多图。注入前应调度 python-reviewer 代理校验。常用命令:pbir add visual pythonVisual "Report.Report/Page.Page" --name PythonChart --data "Values:Sales.Date";pbir visuals python ".../PythonChart.Visual" --script-file chart.py;pbir visuals bind "..." --show;pbir validate "Report.Report" --all。

支持库(Service 端 Python 3.11):matplotlib 3.8.4、seaborn 0.13.2、numpy 2.0.0、pandas 2.2.2、scipy 1.13.1、scikit-learn 1.5.0、statsmodels 0.14.2、pillow 10.4.0;不支持 plotly、bokeh、altair(Service 端网络被禁用)。Desktop 端本地安装的任意包均可使用。

适用场景:仅当图表无原生等价实现且无合适 Deneb 方案、价值在于渲染时执行的统计计算(模型拟合、核密度、预测带),且无需作为交叉筛选源、悬停提示、发布到 Web 或应用拥有数据嵌入时,才使用脚本视觉对象;需要交互或交叉筛选应改用 Deneb,内联小图用 SVG 度量值。Python 与 R 的选择:依赖 scikit-learn、statsmodels 或 scipy 时用 Python,出版级统计默认值和 Python 无对应包时用 R,相同情况沿用报告其他脚本的语言。

限制:输出为 72 DPI 静态 PNG;超时 Desktop 5 分钟、Service 1 分钟;行上限 150,000;Service 载荷 30 MB;Service 网络被禁用;仅支持个人网关;不支持作为交叉筛选来源,不支持发布到 Web 和嵌入式(应用拥有数据)场景,但可接收交叉筛选。最佳实践:始终以 plt.show() 结尾,用 figsize 匹配容器比例,去除图表多余边框,使用与主题一致的十六进制颜色,保持脚本简单,尽量把重计算放在 DAX/Power Query,生产脚本加 try/except,操作前先 dataset.copy()。