Los gráficos son herramientas visuales eficaces porque presentan información de forma rápida y sencilla. A veces, los datos se pueden entender mejor cuando se presentan en un gráfico que en una tabla porque el gráfico puede revelar una tendencia o una comparación. Python es una gran herramienta para graficar datos.
Abajo le mostraremos cómo graficar algunos datos. Específicamente vamos a graficar una representación visual de cuencas hidrográficas en África. Verás como con unas pocas líneas de código puedes representar datos de forma que puedan ser traducidos y entendidos por todos.
# Abajo vamos a instalar las dependencias en nuestro kernel. Como lo harías con una
# actualización de teléfono o computadora
%pip install geopandas
%pip install matplotlib
%pip intall numpy
%pip install rtree
# Ahora que hemos instalado las bibliotecas a las que queremos tener acceso dentro de nuestro código
import geopandas as gdp
import matplotlib.pyplot as plt
# Veamos cómo se ven los datos
africa_rivers = gdp.read_file("Datasets/AfricaWaterShed/afrivs.shp")
print(africa_rivers)
# Ahora podemos manipular los datos para representar lo que queremos. Si está interesado en las funciones,
# puedes encontrar mas informacion en https://geopandas.org/en/stable/index.html
lakes = gdp.read_file("Datasets/AfricaLakes/ne_10m_lakes.shp")
country = gdp.read_file("Datasets/Countries/ne_10m_admin_0_countries.shp")
africa = country.loc[country['CONTINENT'] == 'Africa']
africa_lakes = gdp.sjoin(lakes, africa, op='intersects')
africa_lakes = lakes.loc[lakes.index.isin(africa_lakes.index.tolist())]
excluded_rivers = gdp.sjoin(africa_rivers, africa_lakes, op='within')
africa_rivers = africa_rivers.loc[~africa_rivers.index.isin(excluded_rivers.index.tolist())]
fig, ax = plt.subplots(facecolor='#FFFFFFFF') # Crea una figura
fig.set_size_inches(15,20) # Tamano de gifura
africa_rivers.plot(ax=ax, color='blue', lw=0.1) # Agregar data y informacion de arriba
africa_lakes.plot(ax=ax, color='#FFFFFFFF', alpha=1) # Poner el informacion en la figura
ax.axis('off') # Esconder axis
plt.show() # Ensenar figura
En el siguiente gráfico, estamos representando cuatro ecuaciones lineales.
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams["figure.figsize"] = (16,16) # Tamano de figura
x = np.linspace(-5,5,100)
plt.plot(x, 2*x+1, '-r', label='y=2x+1') # Figura(x, ecuacion, estilo de linea, nombre)
plt.plot(x, 2*x+2, '-.g', label='y=2x+2')
plt.plot(x, 2*x+3, '--b', label='y=2x+3')
plt.plot(x, 2*x+4, ':m', label='y=2x+4')
# Colores: b,g,r,c,m,y,k,w, o(color), ^(color)
# Estilo de linea: (:), (-.), (-), (--)
plt.title('Graph of Linear Equations') # Titulo de grafica
plt.xlabel('x', color='#000000') # X axis titulo y color
plt.ylabel('y', color='#000000') # Y axis titulo y color
plt.legend(loc='upper left') # Locacion of the legenda
plt.grid()
plt.show()
Nos gustaría que replique el código anterior y lo cambie para crear un diamante, cambie los estilos de línea y cambie el título del gráfico a su nombre.
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams["figure.figsize"] = (16,16) # Tamano de figura
x = np.linspace(-5,5,100)
## Escribe Aqui
##
# Colores: b,g,r,c,m,y,k,w, o(color), ^(color)
# LEstilos de linea: (:), (-.), (-), (--)
plt.title('Graph of Linear Equations') # Titulo de grafica
plt.xlabel('x', color='#000000') # X axis titulo y color
plt.ylabel('y', color='#000000') # Y axis titulo y color
plt.legend(loc='upper left') # Locacion de legenda
plt.grid()
plt.show()
Este es uno de los algoritmos de clasificación más simples que compara elementos adyacentes y los intercambia en ordden. Empezamos con un matriz de elementos
{3 8 19 2 16 10}
Primer Pase:
{3 8 19 2 16 10} -> {3 8 19 2 16 10}
{3 8 19 2 16 10} -> {3 8 19 2 16 10}
{3 8 19 2 16 10} -> {3 8 2 19 16 10} Intercambiar!
{3 8 2 19 16 10} -> {3 8 2 16 19 10} Intercambiar!
{3 8 2 16 19 10} -> {3 8 2 16 10 19} Intercambiar!
Segundo Pase:
{3 8 2 16 10 19} -> {3 8 2 16 10 19}
{3 8 2 16 10 19} -> {3 2 8 16 10 19} Intercambiar!
{3 2 8 16 10 19} -> {3 2 8 16 10 19}
{3 2 8 16 10 19} -> {3 2 8 10 16 19} Intercambiar!
{3 2 8 10 16 19} -> {3 2 8 10 16 19}
Tercer Pase:
{3 2 8 10 16 19} -> {2 3 8 10 16 19} Intercambiar!
{2 3 8 10 16 19} -> {2 3 8 10 16 19}
{2 3 8 10 16 19} -> {2 3 8 10 16 19}
{2 3 8 10 16 19} -> {2 3 8 10 16 19}
{2 3 8 10 16 19} -> {2 3 8 10 16 19}
Resultado = {2 3 8 10 16 19}
Este es otro algoritmo de clasificación simple que funciona haciendo dos matrices. Una de las matrices es la matriz sin clasificar original. La segunda matriz es una matriz vacía que actúa como la matriz ordenada.Veamos un ejemplo.
{2 8 5 3 9 4}
Primer Pass:
Marker = 1
{2 8 5 3 9 4}
Segundo Pase:
Marker = 2
{2 8 5 3 9 4} -> {2 5 8 3 9 4} SWAP!
Tercer Pase:
Marker = 3
{2 5 8 3 9 4} -> {2 5 3 8 9 4} SWAP!
{2 5 3 8 9 4} -> {2 3 5 8 9 4} SWAP!
Cuarta Pass:
Marker = 4
{2 3 5 8 9 4}
Quinta Pass:
Marker = 5
{2 3 5 8 9 4} -> {2 3 5 8 4 9} SWAP!
{2 3 5 8 4 9} -> {2 3 5 4 8 9} SWAP!
{2 3 5 4 8 9} -> {2 3 4 5 8 9} SWAP!
Resultado: {2 3 5 4 8 9}
El algoritmo de ordenación por selección ordena una matriz encontrando repetidamente el elemento mas chico. Probemos con la siguiente matriz.
{64 25 12 22 11}
Primer Pass:
{64 25 12 22 11}
11 es el mas chico, intercambiamos 11 y 64
{11 25 12 22 64}
Segundo Pass:
{11 25 12 22 64}
12 es el mas chico, intercambiamos 12 y 25
{11 12 25 22 64}
Tercer Pass:
{11 12 25 22 64}
22 es el mas chico, intercambiamos 25 y 22
{11 12 22 25 64}
Cuarta Pass:
{11 12 22 25 64}
nada mas chico que 25
{11 12 22 25 64}
Quinto Pass:
{11 12 22 25 64}
nada mas chico que 64
Result: (11 12 22 25 64)