Построение линии линейной регрессии через средние значения на точечной диаграмме с использованием Altair

#python #pandas #matplotlib #altair

#python #панды #matplotlib #altair

Вопрос:

Я совершенно новичок в Altair и относительно новичок в matplotlib. Набор данных, который я использую, относится к PGA и игрокам в гольф, которые выиграли турниры в 2017 году. Я отфильтровал свои данные, чтобы включить только тех игроков, у которых был хотя бы один выигрыш. Кроме того, я группирую игроков по количеству их побед (всего 3 подгруппы, поскольку максимальное количество побед было 3). Вертикальная ось состоит из средней дистанции броска каждого игрока.

Я создал точечный график для своих данных, но я хотел бы визуализировать и посмотреть, есть ли положительная линия тренда, проходящая через средние расстояния для каждой группы игроков.

Я знаю, что средние значения для 1, 2 и 3 выигрышей составляют 297,8040, 305,56 и 311,85 соответственно.

Я знаю из matplotlib, что вы можете определить линию с формой линейной регрессии y = mx b, а затем просто построить график с помощью plt.plot, но я не смог найти аналогичный маршрут в Altair.

Снимок экрана текущего вывода точечной диаграммы ниже

 alt.Chart(source).mark_circle(size=250).encode(
    x=alt.X('Number of Wins', scale=Scale(domain=[1, 3], zero=False, padding=1, clamp=True)),
    y=alt.Y('Avg Driving Distance', scale=Scale(domain=[280, 325], zero=False, padding=50, clamp=True),  title="Average Driving Distance"),
    color='Player',
    opacity=alt.value(90)

).properties(
    width=700,
    height=700
    
).interactive()
  

Текущая точечная диаграмма ниже

Ответ №1:

После дальнейшего изучения документов altair я нашел страницу, связанную с подбором линий линейных регрессий, и код, который мне помог, был chart chart.transform_regression('x', 'y').mark_line()

Я не знал, что altair позволил вам в основном компилировать несколько фигур друг над другом, просто используя