Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

301
Views
¿Por qué la fusión de dos gráficos de barras secundarios en uno cambia el eje y cómo puedo solucionar esto?

Tengo dos marcos de datos:

 df1=pd.DataFrame(10*np.random.rand(4,3),index=[2,3,4,5],columns=["I","J","K"]) df2=pd.DataFrame(10*np.random.rand(4,3),index=[1,2,3,4],columns=["I","J","K"])

Después de crear un gráfico de barras obtengo:

subtramas

Ahora quiero fusionarlos en una sola figura, así que probé:

 fig, ax = plt.subplots(sharex=True) ax1 = df1.plot.bar(legend=True, rot=0, stacked=True, width=0.1, position=1, colormap="bwr", ax=ax, alpha=0.7) ax2 = df2.plot.bar(legend=True, rot=0, stacked=True, width=0.1, position=0, colormap="BrBG", ax=ax, alpha=0.7) plt.show()

Pero el resultado no es lo que esperaría: Después de unirse

Como puede ver, me gustaría que el eje x tuviera los valores 1, 2, 3, 4, 5 y que los gráficos correspondieran a su valor de índice original. ¿Dónde está el problema y cómo podría solucionarlo?

Además, si fuera posible, necesitaría establecer los nuevos valores de eje automáticamente, ya que tengo muchos de estos marcos de datos, todos con diferentes valores de eje, e insertar los nuevos valores de eje manualmente llevaría mucho tiempo. ¿Tal vez podría usar .unique() en la columna de índice e implementar esto de alguna manera?

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Puede reindexar ambos marcos de datos al mismo índice:

 import matplotlib.pyplot as plt import pandas as pd import numpy as np df1 = pd.DataFrame(10 * np.random.rand(4, 3), index=[2, 3, 4, 5], columns=["I", "J", "K"]) df2 = pd.DataFrame(10 * np.random.rand(4, 3), index=[1, 2, 3, 4], columns=["I", "J", "K"]) fig, ax = plt.subplots() combined_index = df1.index.union(df2.index) df1.reindex(combined_index).plot.bar(legend=True, rot=0, stacked=True, width=0.1, position=1, colormap="bwr", alpha=0.7, ax=ax) df2.reindex(combined_index).plot.bar(legend=True, rot=0, stacked=True, width=0.1, position=0, colormap="BrBG", alpha=0.7, ax=ax) plt.show()

barras apiladas de pandas para dos marcos de datos con índices combinados

El diagrama de barras de Pandas crea x-ticks categóricos (numerados internamente 0,1,2,... ) utilizando el índice del marco de datos. Primero se asignan las posiciones internas de tick y luego las etiquetas. Al usar el mismo índice para ambos marcos de datos, las posiciones coincidirán.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!