#!/usr/bin/env python
# -*- coding: utf-8 -*-
import tkinter
from matplotlib.figure import Figure
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2Tk
from matplotlib import style
import matplotlib.animation as animation
import matplotlib.pyplot as plt
import numpy as np
from tkinter import messagebox
from math import *
root = tkinter.Tk()
root.wm_title("Graficador")
ta=root.geometry("1000x700")
style.use('fivethirtyeight')
fig = Figure()
ax1 = fig.add_subplot(111)
canvas = FigureCanvasTkAgg(fig, master=root) # CREAR AREA DE DIBUJO DE TKINTER.
canvas.draw()
canvas.get_tk_widget().pack(side=tkinter.TOP, fill=tkinter.BOTH, expand=1)
toolbar = NavigationToolbar2Tk(canvas, root)# barra de iconos
toolbar.update()
canvas.get_tk_widget().pack(side=tkinter.TOP, fill=tkinter.BOTH, expand=1)
act_rango=False
ul_ran=""
ran=""
def animate(i):
global act_rango
global ul_ran
if act_rango==True:
try:
lmin = float(ran[0]); lmax = float(ran[1])
if lmin < lmax:
x = np.arange(lmin, lmax, .01)#.01
ul_ran = [lmin, lmax]
else:
act_rango = False
except:
messagebox.showwarning("Error","Introduzca los valores del rango de x, separado por coma.")
act_rango=False
ets.delete(0,len(ets.get()))
else:
if ul_ran!="":
x = np.arange(ul_ran[0],ul_ran[1], .01)#.01
else:
x = np.arange(1, 10, .01)#.01
try:
solo=eval(graph_data)
ax1.clear()
ax1.plot(x,solo)
except:
ax1.plot()
ax1.axhline(0, color="gray")
ax1.axvline(0, color="gray")
ani.event_source.stop() #DETIENE ANIMACIÓN
def represent():
global graph_data
global ran
global act_rango
texto_orig=et.get()
if ets.get()!="":
rann=ets.get()
ran=rann.split(",")
act_rango=True
ta=texto_orig.replace("sin","np.sin")
tb=ta.replace("cos","np.cos")
tl=tb.replace("log","np.log")
tc=tl.replace("tan","np.tan")
tr=tc.replace("sqrt","np.sqrt")
graph_data=tr
ani.event_source.start() #INICIA/REANUDA ANIMACIÓN
ani = animation.FuncAnimation(fig, animate, interval=1000)
plt.show()
et = tkinter.Entry(master=root,width=60)
et.config(bg="gray87", justify="left")
button = tkinter.Button(master=root, text="SET", bg="gray69", command=represent)
button.pack(side=tkinter.BOTTOM)
et.pack(side=tkinter.BOTTOM)
ets=tkinter.Entry(master=root,width=20)
ets.config(bg="gray87")
ets.pack(side=tkinter.RIGHT)
#ets.insert(0,"RANGO DE X")
tkinter.mainloop()
Comentarios sobre la versión: 1.0 (3)
import matplotlib.pyplot as plt
# Restricciones
x = np.linspace(0, 30000000, 1000)
# Restricción 1: A + V + I + P ≤ 30,000,000
plt.plot(x, 30000000 - x, label='A + V + I + P ≤ 30,000,000')
# Restricción 2: V + I ≥ 0.40 * (A + V + I + P)
plt.plot(x, 0.40 * (30000000 - x), label='V + I ≥ 0.40 * (A + V + I + P)')
# Restricción 3: A ≤ 0.50 * I
plt.plot(x, 0.50 * x, label='A ≤ 0.50 * I')
# Restricción 4: P ≤ 0.10 * (A + V + I + P)
plt.plot(x, 0.10 * 30000000 - 0.10 * x, label='P ≤ 0.10 * (A + V + I + P)')
# Restricción 5: 0.10 * 0.15 * A + 0.05 * 0.08 * V + 0.20 * 0.07 * I + 0.25 * 0.24 * P ≤ 0.06 * (A + V + I + P)
plt.plot(x, 0.06 * (30000000 - x) - 0.10 * 0.15 * x - 0.05 * 0.08 * x - 0.20 * 0.07 * x, label='Pagos Irrecuperables ≤ 6%')
plt.xlabel('A (Prestamos Automovil)')
plt.ylabel('V (Prestamos Vivienda) / I (Prestamos Inversion Rural) / P (Prestamos Personales)')
plt.legend()
plt.grid()
plt.show()
def v(h):
return 37.5 * h
x = np.arange(0, 15, 0.1)
y = v(x)
plt.plot(x, y)
plt.xlabel("Profundidad del agua (pies)")
plt.ylabel("Volumen del agua (pies cúbicos)")
plt.show()
Subobjetivos:
1. Implementar un sistema de monitoreo de la calidad del aire.
a. Adquirir equipos de monitoreo adecuados.
b. Establecer una red de estaciones de monitoreo en las ciudades.
c. Capacitar al personal para operar y mantener los equipos.
2. Recopilar datos precisos y actualizados sobre la calidad del aire.
a. Establecer protocolos de recolección de datos.
b. Garantizar la precisión y fiabilidad de los datos recopilados.
c. Integrar tecnologías de monitoreo avanzadas, como sensores remotos y análisis de big data.
3. Analizar y evaluar los datos para identificar áreas problemáticas y tendencias.
a. Desarrollar herramientas y algoritmos para el análisis de datos.
b. Realizar evaluaciones periódicas de la calidad del aire en diferentes áreas.
c. Identificar factores de riesgo y fuentes de contaminación.
4. Desarrollar e implementar medidas para reducir la contaminación del aire.
a. Establecer políticas de control de emisiones para industrias y vehículos.
b. Promover el uso de energías limpias y transporte público.
c. Educar a la población sobre prácticas ambientalmente responsables.
5. Monitorear la eficacia de las medidas implementadas y ajustarlas según sea necesario.
a. Evaluar regularmente los niveles de contaminantes atmosféricos.
b. Analizar el impacto de las medidas de mitigación en la calidad del aire.
c. Realizar estudios de seguimiento para evaluar el progreso a largo plazo.