Introducir valores y graficar

Permite al usuario introducir valores separados por comas. Estos valores se utilizarán para graficar un gráfico de barras.

import tkinter as tk
from tkinter import messagebox
import matplotlib.pyplot as plt
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg

def graficar():
    # Obtener los datos del campo de entrada y convertirlos en una lista de enteros
    try:
        datos = list(map(int, entry_datos.get().split(',')))
        # Crear una nueva figura con Matplotlib
        fig, ax = plt.subplots()
        ax.bar(range(len(datos)), datos)  # Crear un gráfico de barras
        ax.set_title("Gráfico de Barras")
        ax.set_xlabel("Índice")
        ax.set_ylabel("Valor")

        # Mostrar la figura en el canvas de Tkinter
        canvas = FigureCanvasTkAgg(fig, master=ventana)  # Crear un área de dibujo de Matplotlib en la ventana de Tkinter
        canvas.draw()
        canvas.get_tk_widget().pack(side=tk.TOP, fill=tk.BOTH, expand=True)

    except ValueError:
        messagebox.showerror("Error", "Por favor, introduce una lista de números enteros separados por comas.")

# Crear la ventana principal de Tkinter
ventana = tk.Tk()
ventana.title("Mi primer Ejercicio: Graficar datos")
# la hacemos de dimensiones fijas
ventana.resizable(False, False)
# ancho y alto de la ventana
ventana.geometry("1050x450") 
# Crear un campo de entrada para los datos
entry_datos = tk.Entry(ventana)
entry_datos.pack(side=tk.TOP, padx=10, pady=10)

# Crear un botón para graficar los datos
boton_graficar = tk.Button(ventana, text="Graficar", command=graficar)
boton_graficar.pack(side=tk.TOP)

ventana.mainloop()

Explicación

Explicación del Código

  1. Importar módulos: Importamos Tkinter, Matplotlib, y FigureCanvasTkAgg que nos permite integrar gráficos de Matplotlib en una ventana de Tkinter.

  2. Función Graficar: Esta función toma los datos ingresados en el campo de entrada, los convierte en enteros, y luego crea un gráfico de barras. Si hay un error en la introducción de datos (por ejemplo, si los datos no son enteros válidos), se muestra un mensaje de error.

  3. Interfaz de Usuario: La ventana tiene un campo de entrada para que los usuarios ingresen sus datos y un botón que, al ser pulsado, llama a la función graficar().

  4. Matplotlib Canvas: FigureCanvasTkAgg es utilizado para dibujar la figura de Matplotlib en la ventana de Tkinter.

Última actualización