<jupyter_start><jupyter_text>Practica Biblioteca Matplotlib<jupyter_code>%matplotlib inline
import matplotlib.pyplot as plt
x = [1,2,3,4]
plt.plot(x)
plt.xlabel("Eje de abcisas")
plt.ylabel("Eje de ordenadas")
plt.show();
x = [1,2,3,4] # Es indispensable que ambos vectores sean el mismo tamano
y = [1,4,9,16]
plt.plot(x,y);
plt.plot(x,y,'ro'); # r significa r, y o significa los circulos
plt.axis([0, 6, 0, 20]) # estas son los indices de ajuste para x que empiece en 0 y termine en 6 y en y, que empiece en 0 y termine
# en 20. 
import numpy as np
data = np.arange(0.0, 10.0, 0.2)
data
plt.plot(data, data, 'r--', data, data**2, 'bs', data, data**3, 'g^'); # rojo y -- es para la linea discontinua, s es squared
# el circumplejo es el triangulo 
plt.plot(x,y, linewidth = 2.0); #linewidth = grosor de la linea
line, = plt.plot(x, y, '-'); #linea mas definida y se puede contrastar con sus valores de mejor manera
line.set_antialiased(False)
lines = plt.plot(data, data, data, data**2)
plt.setp(lines, color = 'r', linewidth = '2.0')
lines = plt.plot(data, data, data, data**2)
plt.setp(lines, "color", 'r', "linewidth", 2.0)
plt.plot(x, y, alpha = 0.5); # alpha juega con la transparencia
plt.plot(x, y, marker = '+', linestyle = ':', animated = True); # animated cuando hay una linea temporal
plt.setp(lines) # para ver todos los parametros
def f(x):
    return np.exp(-x)*np.cos(2*np.pi*x)
x1 = np.arange(0,5.0,0.1)
x2 = np.arange(0,5.0,0.2)
plt.figure(1) # este parametro es por defecto

plt.subplot(211) # indica el numero de filas y columnas, y se utilizan dos filas y una columna, el 1 indica el primer dibujo
plt.plot(x1,f(x1), 'ro', x2, f(x2), 'k')

plt.subplot(212) # se utilizan dos filas y una columna, y el 2 es el segundo grafico
plt.plot(x2,f(x2), 'g--')

plt.show()
plt.figure(1)
plt.subplot(2,1,1)
plt.plot([1,2,3])
plt.subplot(2,1,2)
plt.plot([4,5,6])

plt.figure(2)
plt.plot([4,5,6])

plt.figure(1)
plt.subplot(2,1,1) # se pueden cambiar los parametros de los plots en cualquier momento, solo se tienen que invocar. 
plt.title("Esto es el primer titulo")
plt.show()<jupyter_output>/Users/heinerleivagmail.com/opt/anaconda3/lib/python3.7/site-packages/ipykernel_launcher.py:11: MatplotlibDeprecationWarning: Adding an axes using the same arguments as a previous axes currently reuses the earlier instance.  In a future version, a new instance will always be created and returned.  Meanwhile, this warning can be suppressed, and the future behavior ensured, by passing a unique label to each axes instance.
  # This is added back by InteractiveShellApp.init_path()<jupyter_text>Textos en los graficos<jupyter_code>mu = 100
sigma = 20

x = mu + sigma * np.random.randn(10000)
n, bins, patches = plt.hist(x, 50, normed=1, facecolor = "g", alpha = 0.6) # normed seria para ver el eje y en terminos relativos
plt.xlabel("Coeficiente Intelectual", fontsize = 14, color = 'g')
plt.ylabel("Probabilidad")
plt.title(r"Histograma de CI $N(\mu, \sigma)$") # podemos agregar notacion de Latex
plt.text(120, 0.015, r'$\mu = 100,\ \sigma=20$') # localizacion en el grafico para agregar el texto
plt.axis([20,180, 0,0.025])
plt.grid(True) # cuadricula para poder leer los datos 
plt.show()
plt.figure(figsize = (10,6), dpi = 90) # parametros para definir la calidad del grafico
plt.subplot(1,1,1)

x = np.arange(0, 10*np.pi, 0.01)
y = np.cos(x)
plt.plot(x, y, lw = 2.0) # lw es linewidth

plt.annotate("Maximo Local", xy = (4*np.pi, 1), xytext = (15, 1.5), 
             arrowprops = dict(facecolor = 'black', shrink = 0.05)) # tamano de la flecha
plt.ylim(-2,2)
plt.show()
from matplotlib.ticker import NullFormatter
mu = 0.5
sd = 0.3
y = mu + sd*np.random.randn(1000)
y = y[(y>0) & (y<1)]
y.sort()
x = np.arange(len(y))
plt.figure(figsize = (10,8))

plt.subplot(2,2,1)
plt.plot(x,y)
plt.yscale("linear") # escala lineal 
plt.xscale("linear")
plt.title("Escala Lineal")
plt.grid(True) # para ver la cuadricula

plt.subplot(2,2,2)
plt.plot(x,y)
plt.yscale("log") # escala logaritmica
plt.title("Escala Logaritmica")
plt.grid(True)

plt.subplot(2,2,3)
plt.plot(x,y-y.mean())
plt.yscale("symlog", linthreshy = 0.01 ) # escala logaritmica simetrica
plt.title("Escala Log Simetrico")
plt.grid(True)

plt.subplot(2,2,4)
plt.plot(x,y)
plt.yscale("logit") # escala logistica
plt.title("Escala Logistica")
plt.gca().yaxis.set_minor_formatter(NullFormatter())
plt.grid(True)

plt.subplots_adjust(top = 0.92, bottom = 0.08, left= 0.10, right = 0.95, hspace = 0.35, wspace = 0.35) # evitar la superposicion de los graficos

plt.show()<jupyter_output><empty_output><jupyter_text>Cambios en los ejes<jupyter_code>x = np.linspace(-np.pi, np.pi, 256, endpoint=True) # sino se coloca endpoint el ultimo digito no se genera
S,C = np.sin(x), np.cos(x)
plt.plot(x,S, color = 'b', lw = 1.2, linestyle = "-")
plt.plot(x,C, color = "g", lw = 1.2, linestyle = "-")
plt.xlim(x.min()*1.1, x.max()*1.1) # para cambiar los ejes en x
plt.ylim(S.min()*1.1, S.max()*1.1) # para cambiar los ejes en y
plt.xticks(np.linspace(-4,4,17, endpoint = True))
plt.yticks(np.linspace(-1,1,9, endpoint = True)) # para cambiar el tamano de los ejes va de -1 a 1 y con 9 divisiones
plt.show()
plt.figure(figsize = (10,8))

plt.plot(x,S, color = 'b', lw = 1.2, linestyle = "-", label = "seno")
plt.plot(x,C, color = "g", lw = 1.2, linestyle = "-", label = "coseno")
plt.xlim(x.min()*1.1, x.max()*1.1) # para cambiar los ejes en x
plt.ylim(S.min()*1.1, S.max()*1.1) # para cambiar los ejes en y
plt.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi],
          [r'$-\pi$', r'$-\pi/2$]', r'$0$', r'$+\pi/2$', r'+$\pi$'])
plt.yticks(np.linspace(-1,1,2, endpoint = True),
           ['-1', '+1']) # para cambiar el tamano de los ejes va de -1 a 1 y con 9 divisiones

ax = plt.gca()
ax.spines['right'].set_color('none') # para quitar las lineas de; cuadrado 
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))

plt.legend(loc = 'upper left') # posicion donde queremos poner la caja de leyendas

x0 = 2*np.pi/3
plt.plot([x0,x0],[0,np.sin(x0)], color = "blue", lw = 2.5, linestyle = "--") # para hacer una division en el seno 
plt.scatter([x0, ], [np.sin(x0), ], 50, color = "blue")
plt.annotate(r'$\sin(\frac{2\pi}{3}) = \frac{\sqrt{3}}{2}$', 
            xy = (x0, np.sin(x0)), xycoords = "data", 
            xytext = (+20,+40), textcoords = "offset points",
            fontsize = 16, arrowprops = dict(arrowstyle = "->", connectionstyle= "arc3,rad =.2"))
x0 = 2*np.pi/3
plt.plot([x0,x0],[0,np.cos(x0)], color = "green", lw = 2.5, linestyle = "--") # para hacer una division en el seno 
plt.scatter([x0, ], [np.cos(x0), ], 50, color = "green")
plt.annotate(r'$\sin(\frac{2\pi}{3}) = -\frac{1}{2}$', 
            xy = (x0, np.cos(x0)), xycoords = "data", 
            xytext = (-90,-60), textcoords = "offset points",
            fontsize = 16, arrowprops = dict(arrowstyle = "->", connectionstyle= "arc3,rad =.2"))

for label in ax.get_xticklabels()+ ax.get_yticklabels(): # bucle para cambiar tamano de las etiquetas 
    label.set_fontsize(16)
    label.set_bbox(dict(facecolor="cyan", edgecolor = "None", alpha = 0.6)) 


plt.show()<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.181192344761118, 'fraction_numerical': 0.04433429712240121, 'mean_word_length': 4.282909090909091, 'pattern_counts': {'":': 0, '<': 13, '<?xml version=': 0, '>': 15, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '3', 'dir': 'jupyter-structured-clean-dedup', 'id': '328121', 'license': 'CC0-1.0', 'n_tokens_mistral': 3236, 'n_tokens_neox': 2981, 'n_words': 777, 'path': 'Basic_python/Graficacion.ipynb', 'repo_name': 'levraines/Portfolio', 'size': '7263'}