Альтаир объединяет несколько наборов данных - PullRequest
0 голосов
/ 14 сентября 2018

Я только недавно узнал о Vega / Vega-Lite и Altair и считаю его настоящим претендентом на лучший инструмент для построения графиков на Python.

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

Я пробовал такие вещи, как:

plot1 = alt.Chart(df1).mark_point().encode(x = 'time:T', y = [...])[...]
plot2 = alt.Chart(df2).mark_point().encode(x = 'time:T', y = [...])[...]

и это работает, но это довольно неуклюже и не здорово.

Я наткнулся на объект LayerChart, но из документации мне было не совсем понятно, как правильно использовать его для построения нескольких наборов данных.

  • У кого-нибудь есть пример такой диаграммы?
  • Что мне нужно сделать, чтобы получить двойную ось Y?

1 Ответ

0 голосов
/ 16 сентября 2018

Диаграммы с различными наборами данных могут быть наслоены вместе с любым из механизмов, описанных в документации Altair .

Например:

import pandas as pd
import altair as alt

df1 = pd.DataFrame({
    'times': [1, 2, 3],
    'values': [1, 5, 4],
})

df2 = pd.DataFrame({
    'times': [2, 3, 4],
    'values': [4, 2, 3],
})

chart1 = alt.Chart(df1).mark_line().encode(x='times', y='values')
chart2 = alt.Chart(df2).mark_line().encode(x='times', y='values')

chart1 + chart2

enter image description here

...