Forum Discussion

alfertab's avatar
alfertab
Helper I
2 years ago

Mi objeto visual de python no se muesta correctamente al publicar el Power BI

Hola a todos, he estado teniendo un problema al publicar un Power BI y me gustaría ver si alguien pudiera ayudarme.

 

El problema radica en que yo tuve que crear un objeto visual en python con el siguiente código:

# dataset = pandas.DataFrame(Horario, Grafica Load perfil BESS Base, Grafica Load perfil BESS Int, Gráfica Load perfil BESS punta, Grafica Net perfil BESS Base, Grafica Net perfil BESS Int, Gráfica Net perfil BESS punta, Intermediate Demand Dif tarjeta)
# dataset = dataset.drop_duplicates()

# Pegue o escriba aquí el código de script:
import matplotlib as mb
import matplotlib.pyplot as plt
import numpy as np

#Hacer bonito el gráfico
mb.rcParams['font.size'] =12
mb.rcParams['text.color'] ="#000000"
mb.rcParams['axes.labelcolor']="white"
mb.rcParams['xtick.color']="white"
mb.rcParams['ytick.color']="white"

#Definir Parámetros
Horario = dataset.loc[:,'Horario'].tolist()
Load_base= dataset.loc[:,'Grafica Load perfil BESS Base'].tolist()
Net_base = dataset.loc[:,'Grafica Net perfil BESS Base'].tolist()
Load_int= dataset.loc[:,'Grafica Load perfil BESS Int'].tolist()
Net_int = dataset.loc[:,'Grafica Net perfil BESS Int'].tolist()
Load_peak = dataset.loc[:,'Gráfica Load perfil BESS punta'].tolist()
Net_peak = dataset.loc[:,'Gráfica Net perfil BESS punta'].tolist()

#Formato Condicional para demanda Intermedio
Int_demand_conditional = dataset.loc[0:6,'Intermediate Demand Dif tarjeta']
color_cond_Int_1 = np.where(Int_demand_conditional>0,"#B3B3B3","#FBED1D")
color_cond_Int_2 = np.where(Int_demand_conditional>0, "#FBED1D", "#000000")
color_cond_Int_edgecolor_1 = np.where(Int_demand_conditional>0,"#B3B3B3","#FBED1D")
color_cond_Int_edgecolor_2 = np.where(Int_demand_conditional>0, "#FBED1D", "#B3B3B3")

#Formato Condicional para demanda Punta
Peak_demand_conditional = dataset.loc[0:6,'Peak Demand DIF tarjeta']
color_cond_peak_1 = np.where(Peak_demand_conditional>0,"#B3B3B3","#FBED1D")
color_cond_peak_2 = np.where(Peak_demand_conditional>0, "#FBED1D", "#000000")
color_cond_peak_edgecolor_1 = np.where(Peak_demand_conditional>0,"#B3B3B3","#FBED1D")
color_cond_peak_edgecolor_2 = np.where(Peak_demand_conditional>0, "#FBED1D", "#B3B3B3")

#Cambiar color de la parte de afuera del fondo
plt.figure(facecolor="#000000")

#Cambiar color de fondo
ax=plt.axes()
ax.set_facecolor("#000000")

#Crear barras
plt.bar (Horario, Load_base, color ="#b3b3b3", edgecolor="#b3b3b3",linewidth=2  )
plt.bar (Horario, Net_base, bottom = Load_base, color = "#FBED1D", edgecolor="#FBED1D",linewidth=2)
plt.bar (Horario, Load_int, color = color_cond_Int_1, edgecolor=color_cond_Int_edgecolor_1,linewidth=2 )
plt.bar (Horario, Net_int, bottom = Load_int, color = color_cond_Int_2, edgecolor=color_cond_Int_edgecolor_2,linewidth=2 )
plt.bar (Horario,Load_peak, color =color_cond_peak_1, edgecolor=color_cond_peak_edgecolor_1,linewidth=2 )
plt.bar (Horario,Net_peak, bottom = Load_peak, color =color_cond_peak_2, edgecolor=color_cond_peak_edgecolor_2,linewidth=2  )

#Nombrar ejes
plt.xlabel("Horario")
plt.ylabel("Demanda [kW]")

#Poner leyendas
plt.legend(["Load", "Net"])

plt.show()

A la hora de correr el código en Power BI Desktop, me arroja algo como los siguiente:

El problema está en que al publicarlo en la app de Power BI, el gráfico cambia mucho. No muestra las barras de Load en Intermedio y punta, además, pone el contorno blanco lo cual hace que las letras no se vean. Una vez publicado se ve de la siguiente forma: 

¿Alguien sabe a qué se debe el error? Muchas gracias 😄

2 Replies

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi alfertab ,

    Regarding your question, there may be a problem with python package compatibility, check out the following article to make sure your python packages are compatible.

    Learn which Python packages are supported - Power BI | Microsoft Learn

    Try to modify and optimize your python code, complex logic may result in incorrect displays.

     

    Best Regards,
    Wenbin Zhou
    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

  • Hi, I already checked the compatibility with matplotlib and numpy and they are okay. What I'm not understanding is why in Power BI Desktop it's giving me the correct graph. But when publishing, it's giving me other the second graph.

     

    This is in Power BI Desktop and it's okay.

     

    This is in the Power BI App once published. This is wrong.