<jupyter_start><jupyter_text>Lab 10: Ploting with Matplotlib Srudent: <NAME> Group: Truno 2 24/11/2020  Lab 9.2. Third grade function<jupyter_code>import numpy as np
import matplotlib.pyplot as plt
x= np.linspace(-5,5,1000)
np.array(x)
y = 0.25*(x+4)*(x+2)*(x-3)
x1= np.linspace(-20,32)
y1=x1*0
plt.plot(x,y,color='b',label=r'Funcion $y= 0.25\times(x+4)\times(x+2)\times(x+3)$')
plt.ylim(-20,35)
plt.xlim(-8,8)
plt.plot(x1,y1,'g--',label='Axis')
plt.plot(y1,x1,'g--')
plt.plot(-4,0,'r*',markersize=10,label='Roots')
plt.plot(-2,0,'r*',markersize=10)
plt.plot(3,0,'r*',markersize=10)
plt.annotate('root1',xy=(-4,0),xytext=(-6,10),arrowprops= dict(facecolor='g',shrink=0.05),label='Roots')
plt.annotate('root2',xy=(-2,0),xytext=(-3,10),arrowprops= dict(facecolor='g',shrink=0.05))
plt.annotate('root3',xy=(3,0),xytext=(4,-10),arrowprops= dict(facecolor='g',shrink=0.05))
plt.legend(bbox_to_anchor=(1.05,1))
lista= range(-5,6)
plt.xticks(np.array(lista))
plt.xlabel('Eje X')
plt.ylabel('Eje Y')
plt.show()<jupyter_output><empty_output><jupyter_text>Lab 9.3. Sub-plotting Sin function (2.5 pt.)<jupyter_code>nume = int(input('Número de subplot:\t'))
import random
#Añadir colores aleatórios a cada uno de los gráficos
number_of_colors = nume

colos = ["#"+''.join([random.choice('0123456789ABCDEF') for j in range(6)])
             for i in range(number_of_colors+1)]

while True:
    if nume%2==0:
        break
    else:
        print('Ponme un número par')
        nume = int(input('Número de subplot:\t'))
filas = int(nume/2)
columnas=2
x= np.array(np.linspace(-2*np.pi,2*np.pi,1000))
fig, axes = plt.subplots(filas,columnas,figsize=(10,10))
z=0
for i in range(filas):
    for v in range(columnas):
        z+=1
        axes[i,v].plot(x,np.sin(x*z),color= colos[z])
        axes[i,v].set_title(f'Image{z}: sen({z}x) POS[{i},{v}]')
for ax in axes.flat:
    ax.label_outer()<jupyter_output>Número de subplot:	4<jupyter_text>Lab 9.4. Plot 3D (1 pt.)<jupyter_code>import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

x=np.array(np.linspace(0,2*np.pi,500))
y = x.copy()
xx, yy=np.meshgrid(x,y)
z = np.sin(xx)+ np.cos(yy)
surf = ax.plot_surface(xx,yy,z,cmap=cm.coolwarm)

# Añadir una leyende a la derecha de los diferentes valores en función del color
fig.colorbar(surf, shrink=0.85, aspect=5)

ax.set_xlabel('Eje X')
ax.set_ylabel('Eje Y')
ax.set_zlabel('Eje Z')

plt.show()<jupyter_output><empty_output><jupyter_text>Lab 9.5. Anscombe's quartet (1 pt.)<jupyter_code>import matplotlib.pyplot as plt
x = [10, 8, 13, 9, 11, 14, 6, 4, 12, 7, 5]
y1 = [8.04, 6.95, 7.58, 8.81, 8.33, 9.96, 7.24, 4.26, 10.84, 4.82, 5.68]
y2 = [9.14, 8.14, 8.74, 8.77, 9.26, 8.10, 6.13, 3.10, 9.13, 7.26, 4.74]
y3 = [7.46, 6.77, 12.74, 7.11, 7.81, 8.84, 6.08, 5.39, 8.15, 6.42, 5.73]
x4 = [8, 8, 8, 8, 8, 8, 8, 19, 8, 8, 8]
y4 = [6.58, 5.76, 7.71, 8.84, 8.47, 7.04, 5.25, 12.50, 5.56, 7.91, 6.89]
ys= [y1,y2,y3,y4]
fig, axes = plt.subplots(2,2,figsize=(10,10))
i,w,v,f=0,1,0,0
romanos_indi='I'
romanos_cin='V'
for y in ys:
    if v >1:
        v=0
        i+=1
    if w>3:
        w=1
        f+=1
    if i==1 and v==1:
        axes[i,v].plot(x4,y,'ks')
    else:
        axes[i,v].plot(x,y,'ks')

    axes[i,v].text(17,12,romanos_indi*w+romanos_cin*f,size=20,color='b')
    axes[i,v].set_xlim(2.5,20)
    axes[i,v].set_ylim(2,14)
    v+=1
    w+=1  
plt.show()
for i in ys:
    #Media
    mn=np.mean(i)
    
    #Desviación estandar
    ds=np.std(i)
    
    #Coeficiente de correlación
    if i !=y4:
        coor=np.corrcoef(x,i)[0][1]
    else:
        coor=np.corrcoef(x4,i)[0][1]  
    #Lo que nos quiere decir que sea positvo es que cuanto mayor sea el valor de x mayor es valor de y
    print(f'La media: {mn:0.2f},desviación típica {ds:0.2f} y coeficiente de correlación {coor:0.2f}')<jupyter_output>La media: 7.50,desviación típica 1.94 y coeficiente de correlación 0.82
La media: 7.50,desviación típica 1.94 y coeficiente de correlación 0.82
La media: 7.50,desviación típica 1.94 y coeficiente de correlación 0.82
La media: 7.50,desviación típica 1.94 y coeficiente de correlación 0.82<jupyter_text>Es raro porque en ningún momento nadie piensa que puede ser esta la solcuión, y menos en la última gráfica que es una línea recta  Lab 9.6 BiciMad Data (3 pt.)<jupyter_code>import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
bicimad =pd.read_csv('bicimad.csv','r',delimiter=';')
plt.xlabel('Groups of age')
plt.ylabel('Number of travelers')
plt.hist(bicimad['ageRange'],bins=[0,1,2,3,4,5,6,7],rwidth=0.5,align='left')
legnda=['0: No se ha podidio determinar el rango de edad del usuario','1: El usuario tiene ente 0 y 16 años','2: El usuario tiene ente 17 y 18 años','3: El usuario tiene ente 19 y 26 años','4: El usuario tiene ente 27 y 40 años','5: El usuario tiene ente 41 y 65 años','6: El usuario tiene ente 66 años o más']
v=[]
for i in legnda:
    v.append(mpatches.Patch(label=i))
plt.legend(handles=v,bbox_to_anchor=(1.05,1))
plt.show()
plt.hist(bicimad['travel_time'],bins=50,range=(0,2000),density=True,alpha=0.80, color='green')
plt.xlabel('Minutos por viaje')
plt.ylabel('Frecuacia por cada 450811 viajes')
plt.show()
plt.xticks(rotation='vertical')
plt.xlabel('Fecha')
plt.ylabel('Numero de viajes en esa fecha')
plt.title('Viajes en función del día')
plt.hist(list(bicimad['Fecha']), orientation='vertical',rwidth=1, bins=range(0,27,1), align='mid')
plt.show()<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.1842247433819557, 'fraction_numerical': 0.08445885107149288, 'mean_word_length': 4.565130260521042, 'pattern_counts': {'":': 0, '<': 20, '<?xml version=': 0, '>': 22, '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': '5', 'dir': 'jupyter-structured-clean-dedup', 'id': '406680', 'license': 'MIT', 'n_tokens_mistral': 2796, 'n_tokens_neox': 2509, 'n_words': 542, 'path': 'LABS/Lab9/Lab9.ipynb', 'repo_name': 'juanvecino/Python_LAB', 'size': '5561'}