In [1]:
#Librerias necesarias para ejecutar el cdigo
import matplotlib.pyplot as ploty
import numpy as np

#Definicion del espacio de graficacion de 0 a 7 con 10001 posiciones entre elos
x=np.linspace(0, 7, 10001)
#Definicion de la funcion
f=1-np.exp(-x)-x/5
#Proceso de calculo de cuando x=0;
zero=1
coef=0
for i in range(1,10001):
    if f[i]>0:    
        if f[i]<zero:
            zero=f[i]
            coef=i
#t contiene el valor cuando x=0
t=x[coef]
#Graficacion de las funciones definidas anteriormente

ax=ploty.plot(x,f,label=r'$F(x)=1-\exp{(-x)}-\frac{1}{5}x$')
ploty.legend(loc=4)
#Titulos y ejes
ploty.suptitle("Ecuacion del limite de Wien")
ploty.ylabel("F(x)")
ploty.xlabel(r'$x=\frac{hc}{\lambda KT}$')
#Codigo para centrar ejes
ax = ploty.gca()  # gca stands for get current axis
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data',0))
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data',0))
#Codigo para graficar las lineas y colocar la anotacion con x=0
ploty.plot([t, t], [0, 0.48], color='blue', linewidth=2.5, linestyle="--")
ploty.scatter([t, ], [0.48, ], 50, color='blue')
ploty.annotate(t,xy=(t,0.5), xycoords='data',
            xytext=(+1, +1), textcoords='offset points', fontsize=16)

#Comando para mostrar las graficas
ploty.show()





import numpy as num
import matplotlib
matplotlib.use('TkAgg')

import matplotlib.pyplot as plot
from matplotlib.figure import Figure
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2TkAgg
from matplotlib.backend_bases import key_press_handler
import scipy.constants as spc

import sys
if sys.version_info[0] < 3:
    import Tkinter as Tk
else:
    import tkinter as Tk

home = Tk.Tk()
home.wm_title("Atenuacion Guia de Onda")
#Declaracion de limites----------------------------------------------      
f = Figure()
plota = f.add_subplot(111)

#Declaracion de Variables-------------------------------------------- 
a = num.arange(1e-6, 1, 1e-5)
b = (1/((a/2)**0.5))*(1+(a**2))/((1-(a**2))**0.5)*(1/((120**0.5)*(12**3.5)))

#Se les asigna el label correspondiente a cada eje-------------------
plota.plot(a,b)
plota.set_xlabel(r'$\lambda_0/\lambda_c=\lambda_0/2b$')
plota.set_ylabel(r'$K_{gi}b^{3/2}$',rotation='horizontal')
plota.axis([0, 1,0, 10e-5])
plota.set_yticklabels(['0','2','4','6','8',r'$10\times 10{-5}$'])

# Muestra la grafica-------------------------------------------------
plota.set_title('Grafico de Atenuacion de Guia de Onda\n.')
f.tight_layout()
plota.grid(True)

canvas = FigureCanvasTkAgg(f,master=home)
canvas.show()
canvas.get_tk_widget().pack(side=Tk.TOP, fill=Tk.BOTH, expand=1)

toolbar = NavigationToolbar2TkAgg(canvas, home)
toolbar.update()
canvas._tkcanvas.pack(side=Tk.TOP, fill=Tk.BOTH, expand=1)

R = "right"
L = "left"
x = 0.4
q = num.linspace(0,1,2)
var = Tk.StringVar()
label = Tk.Label(home, textvariable=var, fg="black", bg="white",  font = "Helvetica 14 bold italic")
var.set("Utilice las flechas horizontales del teclado para desplazarce por la grafica")
def on_key_event(event):
    if event.key==R:
        global a
        global b
        global x 
        x = x + 0.01
        if x<0.01:
                x = 0.01
                y = (1/((0.01/2)**0.5))*(1+(0.01**2))/((1-(0.01**2))**0.5)*(1/((120**0.5)*(12**3.5)))
                pass
        else:
                y = (1/((x/2)**0.5))*(1+(x**2))/((1-(x**2))**0.5)*(1/((120**0.5)*(12**3.5)))

        if x>0.99:
                x = 0.99
                y = (1/((0.99/2)**0.5))*(1+(0.99**2))/((1-(0.99**2))**0.5)*(1/((120**0.5)*(12**3.5)))
                pass
        else:
                y = (1/((x/2)**0.5))*(1+(x**2))/((1-(x**2))**0.5)*(1/((120**0.5)*(12**3.5)))
                n = num.linspace(x,x,2)
                plota.cla()
                plota.plot(a,b)
                plota.set_xlabel(r'$\lambda_0/\lambda_c=\lambda_0/2b$')
                plota.set_ylabel(r'$K_{gi}b^{3/2}$',rotation='horizontal')
                plota.axis([0, 1,0, 10e-5])
                plota.set_yticklabels(['0','2','4','6','8',r'$10\times 10{-5}$'])

                # Muestra la grafica-------------------------------------------------
                plota.set_title('Grafico de Atenuacion de Guia de Onda\n.')
                f.tight_layout()
                plota.grid(True)
                plota.plot(n,q,'r')
                canvas.draw()
        var.set("Valores sobre la curva\t Kgi*b^(3/2) = "+str(x)+r". lambda_0/2b = "+str(y))
    elif event.key==L:
        global a
        global b
        global x 
        x = x - 0.01
        if x<0.01:
                x = 0.01
                y = (1/((0.01/2)**0.5))*(1+(0.01**2))/((1-(0.01**2))**0.5)*(1/((120**0.5)*(12**3.5)))
                pass
        else:
                y = (1/((x/2)**0.5))*(1+(x**2))/((1-(x**2))**0.5)*(1/((120**0.5)*(12**3.5)))
                
        if x>0.99:
                x = 0.99
                y = (1/((0.99/2)**0.5))*(1+(0.99**2))/((1-(0.99**2))**0.5)*(1/((120**0.5)*(12**3.5)))
                pass
        else:
                y = (1/((x/2)**0.5))*(1+(x**2))/((1-(x**2))**0.5)*(1/((120**0.5)*(12**3.5)))
                n = num.linspace(x,x,2)
                plota.cla()
                plota.plot(a,b)
                plota.set_xlabel(r'$\lambda_0/\lambda_c=\lambda_0/2b$')
                plota.set_ylabel(r'$K_{gi}b^{3/2}$',rotation='horizontal')
                plota.axis([0, 1,0, 10e-5])
                plota.set_yticklabels(['0','2','4','6','8',r'$10\times 10{-5}$'])

                # Muestra la grafica-------------------------------------------------
                plota.set_title('Grafico de Atenuacion de Guia de Onda\n.')
                f.tight_layout()
                plota.grid(True)

                plota.plot(n,q,'r--')
                canvas.draw()
        var.set("Valores sobre la curva\t Kgi*b^(3/2) = "+str(x)+r". lambda_0/2b = "+str(y))
    else:
        pass
    key_press_handler(event, canvas, toolbar)

canvas.mpl_connect('key_press_event', on_key_event)

label.pack(side="bottom", ipady=20)

Tk.mainloop()


/home/asus/anaconda3/lib/python3.5/site-packages/matplotlib/__init__.py:1350: UserWarning:  This call to matplotlib.use() has no effect
because the backend has already been chosen;
matplotlib.use() must be called *before* pylab, matplotlib.pyplot,
or matplotlib.backends is imported for the first time.

  warnings.warn(_use_error_msg)
/home/asus/anaconda3/lib/python3.5/site-packages/matplotlib/tight_layout.py:222: UserWarning: tight_layout : falling back to Agg renderer
  warnings.warn("tight_layout : falling back to Agg renderer")
<ipython-input-1-4e275a4b68a8>:137: SyntaxWarning: name 'a' is used prior to global declaration
  global a
<ipython-input-1-4e275a4b68a8>:138: SyntaxWarning: name 'b' is used prior to global declaration
  global b
<ipython-input-1-4e275a4b68a8>:139: SyntaxWarning: name 'x' is assigned to before global declaration
  global x

In [ ]: