altair:在回归中访问 r 平方值
altair: Access rSquared-value in a regression
我正在使用这个例子https://altair-viz.github.io/user_guide/transform/regression.html
用于在 altair 中绘制回归趋势线。
import altair as alt
import pandas as pd
import numpy as np
np.random.seed(42)
x = np.linspace(0, 10)
y = x - 5 + np.random.randn(len(x))
df = pd.DataFrame({'x': x, 'y': y})
chart = alt.Chart(df).mark_point().encode(
x='x',
y='y'
)
chart + chart.transform_regression('x', 'y').mark_line()
此外,我想将 rSquared-value 作为文本添加到图表中。我如何访问该值?
根据文档,它应该是这样的:
chart + chart.transform_regression('x', 'y', params=True).mark_text()
使用 mark_text()
时,您需要指定 x 和 y 位置(或编码)以及要显示的文本值的标签:
import altair as alt
import pandas as pd
import numpy as np
np.random.seed(42)
x = np.linspace(0, 10)
y = x - 5 + np.random.randn(len(x))
df = pd.DataFrame({'x': x, 'y': y})
chart = alt.Chart(df).mark_point().encode(
x='x',
y='y'
)
line = chart.transform_regression('x', 'y').mark_line()
params = alt.Chart(df).transform_regression(
'x', 'y', params=True
).mark_text(align='left').encode(
x=alt.value(20), # pixels from left
y=alt.value(20), # pixels from top
text='rSquared:N'
)
chart + line + params
如果您也有兴趣以表格形式访问回归参数,可以使用 altair_transfrom
包中的实验方法 extract_data
。
import altair as alt
import pandas as pd
import numpy as np
import altair_transform
np.random.seed(42)
x = np.linspace(0, 10)
y = x - 5 + np.random.randn(len(x))
df = pd.DataFrame({'x': x, 'y': y})
chart = alt.Chart(df).mark_point().encode(
x='x',
y='y'
)
b = chart.transform_regression('x', 'y', params=True).mark_line()
print(altair_transform.extract_data(b))
# coef rSquared
# 0 [-4.935556907797029, 0.9420166005081777] 0.903174
这是我在 git 上托管的 Altair 源存储库上创建的 issue 的交叉 post。希望其他人觉得这很有用。
我正在使用这个例子https://altair-viz.github.io/user_guide/transform/regression.html 用于在 altair 中绘制回归趋势线。
import altair as alt
import pandas as pd
import numpy as np
np.random.seed(42)
x = np.linspace(0, 10)
y = x - 5 + np.random.randn(len(x))
df = pd.DataFrame({'x': x, 'y': y})
chart = alt.Chart(df).mark_point().encode(
x='x',
y='y'
)
chart + chart.transform_regression('x', 'y').mark_line()
此外,我想将 rSquared-value 作为文本添加到图表中。我如何访问该值? 根据文档,它应该是这样的:
chart + chart.transform_regression('x', 'y', params=True).mark_text()
使用 mark_text()
时,您需要指定 x 和 y 位置(或编码)以及要显示的文本值的标签:
import altair as alt
import pandas as pd
import numpy as np
np.random.seed(42)
x = np.linspace(0, 10)
y = x - 5 + np.random.randn(len(x))
df = pd.DataFrame({'x': x, 'y': y})
chart = alt.Chart(df).mark_point().encode(
x='x',
y='y'
)
line = chart.transform_regression('x', 'y').mark_line()
params = alt.Chart(df).transform_regression(
'x', 'y', params=True
).mark_text(align='left').encode(
x=alt.value(20), # pixels from left
y=alt.value(20), # pixels from top
text='rSquared:N'
)
chart + line + params
如果您也有兴趣以表格形式访问回归参数,可以使用 altair_transfrom
包中的实验方法 extract_data
。
import altair as alt
import pandas as pd
import numpy as np
import altair_transform
np.random.seed(42)
x = np.linspace(0, 10)
y = x - 5 + np.random.randn(len(x))
df = pd.DataFrame({'x': x, 'y': y})
chart = alt.Chart(df).mark_point().encode(
x='x',
y='y'
)
b = chart.transform_regression('x', 'y', params=True).mark_line()
print(altair_transform.extract_data(b))
# coef rSquared
# 0 [-4.935556907797029, 0.9420166005081777] 0.903174
这是我在 git 上托管的 Altair 源存储库上创建的 issue 的交叉 post。希望其他人觉得这很有用。