首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Altair中的并排Boxplots

Altair中的并排Boxplots
EN

Stack Overflow用户
提问于 2020-05-28 13:20:03
回答 2查看 354关注 0票数 1

我有这个数据框架:

代码语言:javascript
复制
df = pd.DataFrame(np.array([[1, 4, 7], [2, 5, 8], [3, 6, 9],
                            [4, 7, 10], [5, 8, 11]
                            ]), columns=['a', 'b', 'c'])

我如何在Altair中为每个变量创建并排的箱形图?

EN

回答 2

Stack Overflow用户

发布于 2020-05-28 13:40:38

关键是要理解牵牛星希望数据采用窄格式,我们可以使用.melt()来实现这一点

代码语言:javascript
复制
import altair as alt

alt.Chart(df.melt()).mark_boxplot().encode(
    x='variable',
    y='value'
)

结果:

票数 2
EN

Stack Overflow用户

发布于 2020-05-29 00:06:52

您拥有宽表单数据,而Altair最适合处理长表单数据。有关这方面的讨论,请参阅牛郎星文档中的Long-Form vs. Wide-Form Data

您可以在pandas中使用pd.melt函数(如@chthonicdaemon's answer中所示)重塑数据,也可以使用Altair的Fold Transform在您的图表规范中重塑数据。

以下是基于变换的方法的一个示例:

代码语言:javascript
复制
import altair as alt
import pandas as pd
import numpy as np

df = pd.DataFrame(np.array([[1, 4, 7], [2, 5, 8], [3, 6, 9],
                            [4, 7, 10], [5, 8, 11]
                            ]), columns=['a', 'b', 'c'])

alt.Chart(df).transform_fold(
    ['a', 'b', 'c'],
    as_=['key', 'value']
).mark_boxplot().encode(
    x='key:N',
    y='value:Q'
)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62057538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档