es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Menú desplegable para el gráfico.

Soy nuevo en Python y estoy intentando hacer un menú desplegable para este gráfico que muestra temperaturas en diferentes momentos del día. Los datos son importados desde un archivo csv. A continuación se muestra el código:

import csv
import matplotlib.pyplot as plt 

x=[]
y=[] 
z=[]
w=[] 

class grafice_statice():

    def run(self):
        with open('temperatura.csv', 'r') as csvfile:
            date = csv.reader(csvfile, delimiter=',')
            for row in date:
                try:
                    y.append(float(row[0]))
                    z.append(float(row[1]))
                    w.append(float(row[2]))
                    x.append(row[3])
                except Exception as e:
                    pass


        plt.figure(1)
        plt.plot(x,z, color='g', linestyle='dotted', marker='o', label='Temp 2(°C)!')
        plt.plot(x,y, color='m', linestyle='solid', marker='P', label='Temp 1(°C)!')
        plt.plot(x,w, color='r', linestyle='dashdot', marker='D', label='Temp 3(°C)!')

        plt.xlabel('Timpul')
        plt.ylabel('Temperatura(°C)')
        plt.title('Temperatura in functie de timp', fontsize = 18)
        plt.legend()

        plt.xticks([0,50,99])
        plt.ylim((-5,5))
        plt.show()

grafice_stat=grafice_statice()
grafice_stat.run()

¿Cómo puedo hacer esto?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para crear un menú desplegable para este gráfico, puede utilizar la biblioteca Plotly en Python. A continuación se detallan los pasos a seguir:

    1. Instalar la biblioteca Plotly:

      pip install plotly

    2. Importar las bibliotecas necesarias:

      import plotly.graph_objs as go

    3. Modifique el código reemplazando las llamadas de plt con objetos de gráfico de Plotly:

      trace1 = go.Scatter(x=x, y=z, mode='lines+markers', name='Temp 2(°C)!')
      trace2 = go.Scatter(x=x, y=y, mode='lines+markers', name='Temp 1(°C)!')
      trace3 = go.Scatter(x=x, y=w, mode='lines+markers', name='Temp 3(°C)!')
      data = [trace1, trace2, trace3]
      layout = go.Layout(title='Temperatura in functie de timp', xaxis=dict(title='Timpul'), yaxis=dict(title='Temperatura(°C)'))
      fig = go.Figure(data=data, layout=layout)
      fig.show()
      

    4. Cree el menú desplegable:
      button_layer_1_height = 1.12
      fig.update_layout(
          updatemenus=[
              dict(
                  buttons=list([
                      dict(
                          args=["y", [z]],
                          label="Temp 2(°C)!",
                          method="update"
                      ),
                      dict(
                          args=["y", [y]],
                          label="Temp 1(°C)!",
                          method="update"
                      ),
                      dict(
                          args=["y", [w]],
                          label="Temp 3(°C)!",
                          method="update"
                      )
                  ]),
                  direction="down",
                  pad={"r": 10, "t": 10},
                  showactive=True,
                  x=0.1,
                  xanchor="left",
                  y=button_layer_1_height,
                  yanchor="top"
              ),
          ]
      )
      

    Esto creará un menú desplegable con tres opciones para cambiar entre diferentes valores de temperatura. Puede personalizar las etiquetas y agregar más opciones al menú según sus requisitos.

Comments are closed.