堆叠的条形图,其中每一列都是Altair中具有多列的条形图

时间:2020-08-22 23:22:42

标签: python altair

我想绘制类似的图表, Stacked bar chart across multiple columns 但它与R一起使用,我希望使用Python,希望与Atair一起使用。

1 个答案:

答案 0 :(得分:5)

听起来您拥有宽格式的数据,需要将其转换为长格式的数据(请参阅Altair文档中的Long Form vs. Wide Form data)。

一种方便的处理方法是使用Fold Transform。例如:

import altair as alt
import pandas as pd

df = pd.DataFrame({
    'label': ['A', 'B', 'C', 'D', 'E', 'F', 'G'],
    'value1': [1, 3, 2, 4, 5, 6, 4],
    'value2': [2, 1, 2, 5, 3, 4, 2],
})

alt.Chart(df).transform_fold(
  ['value1', 'value2'],
  as_=['column', 'value']
).mark_bar().encode(
  x='label:N',
  y='value:Q',
  color='column:N'
)

enter image description here