У меня есть серия ежемесячных данных инвентаризации с 2017 года. У меня есть серия inventory_forecasts с декабря 2018 года.
Я пытаюсь построить данные инвентаризации на ежемесячно-сезонной основе, а затем наложить inventory_forecasts с января по декабрь 2019 года.
Фрейм данных выглядит так:
Первый способ, которым я пытался сделать диаграмму, показывает все данные, которые мне нужны, но я не могу контролировать цвет линии inventory_zj
. Похоже, что в его цвете преобладает color=year(date):N
из alt.Chart
, который я настроил. Он игнорирует color='green'
, который я передаю mark_line()
base = alt.Chart(inv.loc['2000':].reset_index(), title=f"usa total inventory").mark_line().encode(
x='month',
y="inventory",
color="year(date):N"
)
#this ignores my 'green' color instruction, and marks it the same light blue 2019 color
joe = base.mark_line(color='green').encode(
alt.Y('inventory_zj', scale=alt.Scale(zero=False), )
)
base+joe
Я пробовал использовать систему слоев, но она вообще не работает - я не могу заставить ее отображать слой "Джо"
base = alt.Chart(inv.loc['2000':].reset_index(), title=f"usa total inventory").encode(
x='month(date)'
)
doe = base.mark_line().encode(
alt.Y('inventory', scale=alt.Scale(zero=False), ),
color="year(date):N"
)
joe = base.mark_line(color="green").encode(
alt.Y('inventory_zj', scale=alt.Scale(zero=False), ),
)
#looks identical to the first example
alt.layer(
doe, joe
).resolve_scale(
y='shared'
).configure_axisLeft(labelColor='black').configure_axisRight(labelColor='green',titleColor='green')
#independent shows a second y-axis (which is different from the left y-axis) but no line
alt.layer(
doe, joe
).resolve_scale(
y='independent'
).configure_axisLeft(labelColor='black').configure_axisRight(labelColor='green',titleColor='green')
Я чувствую, что, должно быть, пытаюсь собрать эту диаграмму в корне неверным способом. Я должен иметь возможность отображать ту же левую ось Y, иметь исторические данные, окрашенные по годам, и иметь уникальный цвет для данных, прогнозируемых на 2019 год. Но я, кажется, все запутала.