因此,我正在研究汽车数据集,并希望将 R 值添加到散点图中。因此,我可以使用此代码来生成散点图,并transform_regression添加回归线,这很棒。
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 的未来版本中,图表中的空数据将不再需要。