altair: доступ к rSquared-значению в регрессии - PullRequest
1 голос
/ 15 февраля 2020

Я использую этот пример https://altair-viz.github.io/user_guide/transform/regression.html для построения линии тренда регрессии в Альтаире.

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()

enter image description here

Кроме того, я хочу добавить значение rSquared в виде текста на диаграмму. Как я могу получить доступ к значению? Согласно документации, это должно быть что-то вроде:

chart + chart.transform_regression('x', 'y', params=True).mark_text()

1 Ответ

3 голосов
/ 15 февраля 2020

При использовании 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

enter image description here

...