自2017年以来,我拥有一系列的每月库存数据。 自2018年12月以来我有一系列的stock_forecasts
我试图按月绘制季节数据,然后覆盖2019年1月至2019年12月的stock_forecasts。
数据框如下:
我尝试制作图表的第一种方法确实显示了我想要的所有数据,但是我无法控制inventory_zj
行的颜色。其颜色似乎由我配置的color=year(date):N
的{{1}}主导。它忽略了我传递给alt.Chart
的{{1}}
color='green'
我尝试使用分层系统,但是它根本不起作用-我无法显示“ joe”层
mark_line()
我觉得我必须以一种根本错误的方式来组装这张图表。我应该能够共享相同的左y轴,按年份对历史数据进行着色,并对2019年的预测数据使用唯一的颜色。但是我似乎一团糟。
答案 0 :(得分:0)
如Customizing Visualizations文档中所述,可以使用多种方法来指定诸如线条颜色之类的东西,并具有明确定义的层次结构:编码会覆盖标记属性,而后者会覆盖顶级配置。
在图表中,您编写base.mark_point(color='green')
,其中base
包含覆盖mark属性的颜色编码。如果您不从基础派生该图层(因此它没有颜色编码),则该行将如您所愿地变为绿色。像这样:
base = alt.Chart(inv.loc['2000':].reset_index(), title=f"usa total inventory")
inventory = base.mark_line().encode(
x='month',
y="inventory",
color="year(date):N"
)
joe = base.mark_line(color='green').encode(
x='month',
y=alt.Y('inventory_zj', scale=alt.Scale(zero=False))
)
inventory + joe