如何从Vega回归中提取拟合参数及相关信息?附调试建议
Vega-Lite回归线拟合参数访问与datum调试方案
一、访问回归线拟合参数
Vega-Lite的regression变换会生成包含完整拟合信息的datum对象,除rSquared外,还支持直接访问以下核心参数:
slope: 回归线斜率intercept: 回归线截距meanSquaredError: 均方误差explainedVariance: 解释方差
示例:在图表中展示拟合参数
可以通过添加text标记或配置tooltip来直观展示这些参数:
{ "$schema": "https://vega.github.io/schema/vega-lite/v5.json", "data": {"url": "data/cars.json"}, "layer": [ {"mark": "point"}, { "mark": "line", "transform": [ {"regression": "Miles_per_Gallon", "on": "Horsepower", "as": ["_x", "_y"]} ], "encoding": { "x": {"field": "_x", "type": "quantitative"}, "y": {"field": "_y", "type": "quantitative"} } }, { "mark": {"type": "text", "y": 20, "x": 20, "lineBreak": "\n"}, "encoding": { "text": { "expr": "'斜率: ' + format(datum.slope, '.2f') + '\n截距: ' + format(datum.intercept, '.2f') + '\nR²: ' + format(datum.rSquared, '.2f')" } } } ] }
二、安全升级后查看datum键的调试方法
Vega安全沙箱限制了外部JS直接访问datum结构,可通过以下方式绕过限制进行调试:
- 使用Vega Editor数据检查器: 在Vega Editor右侧的「Data」面板中,查看经过所有变换后的数据集,可直接看到datum的所有键值对。
- 添加log变换输出到控制台: 在transform中加入
log类型变换,将datum打印到浏览器控制台:
打开浏览器开发者工具的Console标签,即可查看完整的datum对象。"transform": [ // 保留原有变换 {"type": "log", "expr": "datum"} ] - 用text标记输出datum序列化字符串: 在图表中添加text标记,将datum转为JSON字符串显示:
{ "mark": {"type": "text", "y": 50, "x": 20, "fontSize": 10}, "encoding": { "text": {"expr": "JSON.stringify(datum)"} } } - 通过tooltip展示完整datum: 配置tooltip为
{"content": "data"},hover图表元素时可查看datum全部内容:"config": { "tooltip": {"content": "data"} }
内容的提问来源于stack exchange,提问作者Light Matters
相关产品推荐
相关产品推荐

