Me gustaría dibujar un gráfico similar al que se solicitó en Gráfico de barras apiladas en varias columnas pero es con R, quiero usar Python, con suerte con Atair.

2
Yu Shen 23 ago. 2020 a las 02:22

1 respuesta

La mejor respuesta

Parece que tiene datos de formato ancho y necesita transformarlos en datos de formato largo (consulte Datos de formato largo frente a datos de formato ancho en los documentos de Altair).

Una forma conveniente de manejar esto es con una Fold Transform. Por ejemplo:

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

6
jakevdp 23 ago. 2020 a las 14:45