python - 在 Altair 的散点图中添加 R 值(相关性)
问题描述
所以我正在玩 Cars 数据集,并希望将 R 值添加到散点图中。所以我可以使用这段代码来生成一个散点图,transform_regression
用来添加一个很棒的回归线。
from vega_datasets import data
import altair as alt
import pandas as pd
import numpy as np
cars = data.cars()
chart = alt.Chart(cars).mark_circle().encode(
alt.X('Miles_per_Gallon', scale=alt.Scale(domain=(5,50))),
y='Weight_in_lbs'
)
chart + chart.transform_regression('Miles_per_Gallon','Weight_in_lbs').mark_line()
这是图表
然后我正在寻找 R 值。所以可以在这段代码中使用 pandas,因为我不确定如何使用 Altair 获得 R 值。
corl = cars[['Miles_per_Gallon','Weight_in_lbs']].corr().iloc[0,1]
corl
现在我想知道如何在图表上添加 R 值作为一种标签?
解决方案
您可以通过添加文本层来做到这一点:
text = alt.Chart({'values':[{}]}).mark_text(
align="left", baseline="top"
).encode(
x=alt.value(5), # pixels from left
y=alt.value(5), # pixels from top
text=alt.value(f"r: {corl:.3f}"),
)
chart + text + chart.transform_regression('Miles_per_Gallon','Weight_in_lbs').mark_line()
在 Altair 的未来版本中,将不再需要图表中的空数据。
推荐阅读
- typescript - 接口与导入和本地合并不起作用?
- git - 如何在不构建上游作业的情况下将参数从上游作业传递给下游作业
- github - Packagist 包在重命名后保持自动更新(放弃+新)
- java - SQL Java 数据连接
- javascript - TypeError:尝试在 CardView、NativeScript-Vue 中显示 API 数据时无法读取未定义的属性“endpoint_link_1”
- javascript - 运行“nodemon index.js”会启动 Windows 脚本主机而不是 VS:WSH 错误代码 800A03F6
- python - 基于类的视图django中的JWT验证
- rubygems - 创建新的 jekyll 站点时遇到问题:“找不到 Gemfile 或 .bundle/ 目录”
- javascript - 为什么我的 heroku 应用程序崩溃而没有显示任何错误?
- android - 如何为android制作倒数计时器?