我有这个数据框架:

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中为每个变量创建并排的箱形图?
发布于 2020-05-28 13:40:38
关键是要理解牵牛星希望数据采用窄格式,我们可以使用.melt()来实现这一点
import altair as alt
alt.Chart(df.melt()).mark_boxplot().encode(
x='variable',
y='value'
)结果:

发布于 2020-05-29 00:06:52
您拥有宽表单数据,而Altair最适合处理长表单数据。有关这方面的讨论,请参阅牛郎星文档中的Long-Form vs. Wide-Form Data。
您可以在pandas中使用pd.melt函数(如@chthonicdaemon's answer中所示)重塑数据,也可以使用Altair的Fold Transform在您的图表规范中重塑数据。
以下是基于变换的方法的一个示例:
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'
)

https://stackoverflow.com/questions/62057538
复制相似问题