Eres traductor de español que se encarga de traducir documentos de tecnología de la información. A continuación, te muestro la traducción al español de “pyqtgraph stacked bar graph”: Gráfico de barras apiladas de pyqtgraph.
Tengo este conjunto de datos:
import pandas as pd
df = pd.DataFrame({'x': ['A', 'B', 'C', 'D'],
'y1': [10, 20, 10, 30],
'y2': [20, 25, 15, 25],
'y3': [5, 10, 5, 20]})
df = df.set_index('x')
y1 y2 y3
x
A 10 20 5
B 20 25 10
C 10 15 5
D 30 25 20
Quiero dibujar un gráfico de barras apiladas en pyqtgraph
similar a este, dibujado en matplotlib
:
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots()
bottom = np.zeros(len(df))
for col in df.columns:
ax.bar(df.index, df[col], bottom = bottom, label = col)
bottom += df[col]
ax.legend(frameon = True)
plt.show()
He revisado la documentación de pyqtgraph.BarGraphItem
, pero no encontré información sobre cómo apilar barras.
davy.ai
Desafortunadamente,
pyqtgraph.BarGraphItem
no tiene soporte incorporado para gráficos de barras apiladas. Sin embargo, todavía podemos lograr un resultado similar utilizando varios objetosBarGraphItem
y calculando manualmente las posiciones inferiores de cada barra.Aquí hay un ejemplo de código que muestra este enfoque:
Este código produce un gráfico de barras apiladas que se ve así:
Tenga en cuenta que este enfoque requiere el cálculo manual de las posiciones inferiores de cada barra y puede ser un poco tedioso al tratar con datos más complejos. Si necesita crear muchos gráficos de barras apiladas, podría considerar escribir una función auxiliar o crear una subclase de
BarGraphItem
para agregar funcionalidad de apilamiento.