Как я могу поместить два бара разных серий рядом друг с другом на одном графике? - PullRequest
0 голосов
/ 15 февраля 2020

Давайте предположим, что наш фрейм данных имеет две серии целочисленных типов: estimated_value и sell_price.

Я хочу, чтобы на одной гистограмме было два бара рядом друг с другом. Левый показывает average(estimated_value), а правый показывает average(sell_price). Они будут иметь одну и ту же ось.

Я думал, что это будет очень распространенный вариант использования, но я не смог найти никакого примера в документации. Все примеры используют 'color' или 'column' для группировки баров.

  • Я пытался использовать y2, но кажется, что вместо стирания второй серии просто стирается разница с y1.
  • Затем я попытался использовать слоистую диаграмму, но это ставит обе полосы друг на друга, а не рядом друг с другом.

1 Ответ

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

Звучит так, как будто у вас есть широкие данные, а не длинные данные. Разница обсуждается в Длинные данные против широкоформатных данных .

После того, как вы преобразовали свои данные в длинные, вы можете использовать стандартные кодировки для достижения этого результата. Вот как это может выглядеть, используя пример данных:

import altair as alt
import pandas as pd

data = pd.DataFrame({
    'estimated_value': [500, 600, 700, 800, 900],
    'sell_price': [550, 610, 690, 810, 950]
})

alt.Chart(data).transform_fold(
    ['estimated_value', 'sell_price'], as_=['category', 'price']
).mark_bar().encode(
    y='category:N',
    x='average(price):Q',
)

enter image description here

...