【发布时间】:2018-09-14 08:04:23
【问题描述】:
我最近才发现 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 轴?
【问题讨论】:
-
df1和df2的一些小数据将使您的问题完整,并允许对您的问题进行试验 -
这是 Altair 库中分层图表的示例:altair-viz.github.io/gallery/…,这是 Altair 的 LayerChart documentation。如果您对分层有任何更具体的问题,请随时提问!
-
非常感谢您。我本来想添加更多数据,但由于这是一个工作项目,所以这是一个很大的禁忌。
-
但是以时间序列为例,您还希望将注释绘制到存储在单独数据框中的特定点。我确实阅读了示例和文档,这很有帮助。但是在图库中,我没有看到使用两个数据集的示例,只有来自同一数据集的不同属性。现在在 alt.LayerChart 接口的文档中有关键字 datasets。我不确定我会如何使用它。
-
嗨@AJK——你不必提供专有数据,但如果你能更具体地说明你想做的事情,你通常会在 StackOverflow 上得到更有用的答案。这可能涉及创建一些小数据集来说明您要解决的问题。阅读stackoverflow.com/help/mcve的提示
标签: python visualization vega-lite altair