{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"provenance": [],
"collapsed_sections": [
"Zm5xN4B6cAP4",
"3RrZcFReIGf2",
"L4EjV4i_IBaF",
"UtO6v7DQIf6p",
"rskZTsSOdGAs",
"kko20r5EB7f5",
"VgHI9dJ7DXUs",
"8eZaEw-nDbTG",
"7-ytVIIPIUN_"
]
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"language_info": {
"name": "python"
}
},
"cells": [
{
"cell_type": "markdown",
"source": [
"
Clase de Visualizaciones\n",
" IN5244 - Ciencia de los Datos\n",
" Otoño 2023\n",
" Profesores: Richard Weber, Pablo Muñoz\n",
" Auxiliares: Patricio Ortiz, Sofía Pontigo, Joaquín Roa\n",
" Ayudantes: Cristóbal Pérez, Matías Villa, Camila B. Sariego, Francisco Vilches\n",
"\n",
"---"
],
"metadata": {
"id": "fqwVtEDbFSaX"
}
},
{
"cell_type": "markdown",
"source": [
"### Data Visualization"
],
"metadata": {
"id": "yVOx79YR9vU5"
}
},
{
"cell_type": "markdown",
"source": [
"**Por qué la visualización es importante?**\n",
"\n",
"-> La visión es el canal de comunicación más eficiente."
],
"metadata": {
"id": "TXHGRRSM8dMu"
}
},
{
"cell_type": "markdown",
"source": [
""
],
"metadata": {
"id": "kWsn5yMh8ynh"
}
},
{
"cell_type": "markdown",
"source": [
"### Recomendaciones"
],
"metadata": {
"id": "OIxVOpLz9mQu"
}
},
{
"cell_type": "markdown",
"source": [
" **Ayuda al lector:**\n",
"* Palabras sin abreviaciones extrañas.\n",
"* Palabras de izquierda a derecha.\n",
"* Pequeños mensajes que ayudan a entender los datos.\n",
"* Sobreponer etiquetas sobre gráfico.\n",
"* Gráficos que atraen la atención y curiosidad del lector.\n",
"* Colores son amigables con personas daltónicas.\n",
"* Fuentes claras, precisas, sobrias.\n",
"* Fuentes con mayúsculas y minúsculas.\n",
"\n",
"**No ayuda al lector:**\n",
"* Abreviaciones abundan, se requiere ver texto.\n",
"* Palabras de arriba a abajo o en varias direcciones.\n",
"* Gráficos difíciles de interpretar, se requiere leer texto.\n",
"* Rellenos, sombreados, o colores complicados, se requiere leer texto.\n",
"* Gráficos desalientan al lector, llenos de información irrelevante.\n",
"* No se considera daltonismo, e.g. verde y rojo son contrastes principales.\n",
"* Fuentes poco claras, saturadas, con exceso de información.\n",
"* Fuentes en mayúsculas.\n",
"\n",
"\n"
],
"metadata": {
"id": "ixumzvBK9J7b"
}
},
{
"cell_type": "markdown",
"source": [
"### Configuraciones y librerías"
],
"metadata": {
"id": "Zm5xN4B6cAP4"
}
},
{
"cell_type": "code",
"source": [
"from google.colab import drive\n",
"drive.mount('/content/drive')"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "_yVfjqmRhI1T",
"outputId": "ad4b948e-6b42-4197-a27d-2c9e49994fd3"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Mounted at /content/drive\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"# Install packages\n",
"!pip install polyline\n",
"!pip install mplleaflet\n",
"! pip install squarify"
],
"metadata": {
"id": "n7Q9R2yD-85E",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "d6af2f21-0507-4d2f-ffbc-3ef48783f834"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n",
"Collecting polyline\n",
" Downloading polyline-2.0.0-py3-none-any.whl (6.0 kB)\n",
"Installing collected packages: polyline\n",
"Successfully installed polyline-2.0.0\n",
"Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n",
"Collecting mplleaflet\n",
" Downloading mplleaflet-0.0.5.tar.gz (37 kB)\n",
" Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
"Requirement already satisfied: jinja2 in /usr/local/lib/python3.10/dist-packages (from mplleaflet) (3.1.2)\n",
"Requirement already satisfied: six in /usr/local/lib/python3.10/dist-packages (from mplleaflet) (1.16.0)\n",
"Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from jinja2->mplleaflet) (2.1.2)\n",
"Building wheels for collected packages: mplleaflet\n",
" Building wheel for mplleaflet (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
" Created wheel for mplleaflet: filename=mplleaflet-0.0.5-py3-none-any.whl size=28565 sha256=c9c7682db60c8ea0894a9f356c16d04ce0ea35a54f558162bb6c846706a87ce7\n",
" Stored in directory: /root/.cache/pip/wheels/0d/00/a9/595e650d2e0a5ca4119c0f6e03dfd1093e5d67fe2c0e5d49f0\n",
"Successfully built mplleaflet\n",
"Installing collected packages: mplleaflet\n",
"Successfully installed mplleaflet-0.0.5\n",
"Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n",
"Collecting squarify\n",
" Downloading squarify-0.4.3-py3-none-any.whl (4.3 kB)\n",
"Installing collected packages: squarify\n",
"Successfully installed squarify-0.4.3\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"# Data Handle\n",
"import pandas as pd\n",
"import numpy as np\n",
"import json\n",
"import random\n",
"\n",
"# Warnings\n",
"import warnings\n",
"warnings.filterwarnings(\"ignore\")\n",
"\n",
"# API interaction\n",
"import requests\n",
"\n",
"# Visualizations\n",
"# Visualizations - Display\n",
"from IPython.display import display\n",
"# Visualizations - Matplotlib\n",
"import matplotlib.pyplot as plt\n",
"import matplotlib.dates as mdates\n",
"# Visualizations - Geo\n",
"import folium\n",
"import polyline\n",
"# Visualizations - Seaborn\n",
"import seaborn as sns\n",
"import squarify\n",
"# Visualizations - Plotly\n",
"import plotly.express as px\n",
"import plotly.figure_factory as ff\n",
"import plotly.graph_objects as go"
],
"metadata": {
"id": "rZsUr2_oCIxP"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"### Visualizaciones Típicas"
],
"metadata": {
"id": "3RrZcFReIGf2"
}
},
{
"cell_type": "code",
"source": [
"df_grades = pd.concat([\n",
" pd.read_json('https://raw.githubusercontent.com/cristobalperezp/MDS7202-Laboratorio/main/students_grades/students_grades_1.json'),\n",
" pd.read_json('https://raw.githubusercontent.com/cristobalperezp/MDS7202-Laboratorio/main/students_grades/students_grades_2.json')\n",
" ]\n",
")"
],
"metadata": {
"id": "2v1EFDbSHjgm"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"df_grades"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 502
},
"id": "l2BGBmWHIXOp",
"outputId": "ae5cd584-32ef-4f12-b511-9ad72a760d69"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" names gender race/ethnicity parental level of education \\\n",
"0 Rita Courtney female group B some high school \n",
"1 Charles Linstrom male group A bachelor's degree \n",
"2 Brian Young male group C some high school \n",
"3 Howard Jimenez male group E some high school \n",
"4 Wayne Wilson male group B some high school \n",
".. ... ... ... ... \n",
"470 Richard Young male group D high school \n",
"471 Wanda Russell female group B high school \n",
"472 Marina Zeigler female group C bachelor's degree \n",
"473 Laurie Carter female group B some high school \n",
"474 Amanda Perez female group A high school \n",
"\n",
" lunch test preparation course math score reading score \\\n",
"0 standard none 3.22 3.76 \n",
"1 standard completed 5.80 5.68 \n",
"2 standard none 5.38 4.96 \n",
"3 standard completed 5.86 5.50 \n",
"4 standard completed 6.64 6.16 \n",
".. ... ... ... ... \n",
"470 standard none 5.14 5.50 \n",
"471 free/reduced completed 2.38 3.64 \n",
"472 free/reduced completed 4.96 5.44 \n",
"473 standard completed 4.24 4.66 \n",
"474 standard completed 5.08 5.80 \n",
"\n",
" writing score \n",
"0 3.76 \n",
"1 5.86 \n",
"2 4.78 \n",
"3 5.56 \n",
"4 6.22 \n",
".. ... \n",
"470 5.26 \n",
"471 3.16 \n",
"472 5.86 \n",
"473 4.72 \n",
"474 5.56 \n",
"\n",
"[875 rows x 9 columns]"
],
"text/html": [
"\n",
" \n",
"
\n",
"
\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" names \n",
" gender \n",
" race/ethnicity \n",
" parental level of education \n",
" lunch \n",
" test preparation course \n",
" math score \n",
" reading score \n",
" writing score \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" Rita Courtney \n",
" female \n",
" group B \n",
" some high school \n",
" standard \n",
" none \n",
" 3.22 \n",
" 3.76 \n",
" 3.76 \n",
" \n",
" \n",
" 1 \n",
" Charles Linstrom \n",
" male \n",
" group A \n",
" bachelor's degree \n",
" standard \n",
" completed \n",
" 5.80 \n",
" 5.68 \n",
" 5.86 \n",
" \n",
" \n",
" 2 \n",
" Brian Young \n",
" male \n",
" group C \n",
" some high school \n",
" standard \n",
" none \n",
" 5.38 \n",
" 4.96 \n",
" 4.78 \n",
" \n",
" \n",
" 3 \n",
" Howard Jimenez \n",
" male \n",
" group E \n",
" some high school \n",
" standard \n",
" completed \n",
" 5.86 \n",
" 5.50 \n",
" 5.56 \n",
" \n",
" \n",
" 4 \n",
" Wayne Wilson \n",
" male \n",
" group B \n",
" some high school \n",
" standard \n",
" completed \n",
" 6.64 \n",
" 6.16 \n",
" 6.22 \n",
" \n",
" \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" \n",
" \n",
" 470 \n",
" Richard Young \n",
" male \n",
" group D \n",
" high school \n",
" standard \n",
" none \n",
" 5.14 \n",
" 5.50 \n",
" 5.26 \n",
" \n",
" \n",
" 471 \n",
" Wanda Russell \n",
" female \n",
" group B \n",
" high school \n",
" free/reduced \n",
" completed \n",
" 2.38 \n",
" 3.64 \n",
" 3.16 \n",
" \n",
" \n",
" 472 \n",
" Marina Zeigler \n",
" female \n",
" group C \n",
" bachelor's degree \n",
" free/reduced \n",
" completed \n",
" 4.96 \n",
" 5.44 \n",
" 5.86 \n",
" \n",
" \n",
" 473 \n",
" Laurie Carter \n",
" female \n",
" group B \n",
" some high school \n",
" standard \n",
" completed \n",
" 4.24 \n",
" 4.66 \n",
" 4.72 \n",
" \n",
" \n",
" 474 \n",
" Amanda Perez \n",
" female \n",
" group A \n",
" high school \n",
" standard \n",
" completed \n",
" 5.08 \n",
" 5.80 \n",
" 5.56 \n",
" \n",
" \n",
"
\n",
"
875 rows × 9 columns
\n",
"
\n",
"
\n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
"\n",
" \n",
"
\n",
"
\n",
" "
]
},
"metadata": {},
"execution_count": 5
}
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "x0TK9pcLCS4A",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "ef4e387a-5dfa-4c34-e38c-2cd5cc98fe0e"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"names object\n",
"gender object\n",
"race/ethnicity object\n",
"parental level of education object\n",
"lunch object\n",
"test preparation course object\n",
"math score float64\n",
"reading score float64\n",
"writing score float64\n",
"dtype: object"
]
},
"metadata": {},
"execution_count": 6
}
],
"source": [
"df_grades.dtypes"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "8ynldKL2CdRn"
},
"outputs": [],
"source": [
"# pasamos de object a category las variables correspondientes\n",
"df_grades['gender'] = df_grades['gender'].astype('category')\n",
"df_grades['race/ethnicity'] = df_grades['race/ethnicity'].astype('category')\n",
"df_grades['parental level of education'] = df_grades['parental level of education'].astype('category')\n",
"df_grades['lunch'] = df_grades['lunch'].astype('category')\n",
"df_grades['test preparation course'] = df_grades['test preparation course'].astype('category')"
]
},
{
"cell_type": "markdown",
"metadata": {
"cell_id": "ad5715016b0b4955ab6eedbcbc1a623a",
"deepnote_cell_height": 52.390625,
"deepnote_cell_type": "markdown",
"id": "oGwrLMBJ_rM1"
},
"source": [
"**Gráfico de Caja:**"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"cell_id": "dab2080fdd9547f2b397b327bb28bded",
"deepnote_cell_height": 61,
"deepnote_cell_type": "code",
"id": "OQYZquKQ_rM1",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 542
},
"outputId": "6f451142-d99f-4883-fff6-ba9fb813e38c"
},
"outputs": [
{
"output_type": "display_data",
"data": {
"text/html": [
"\n",
" \n",
"\n",
" \n",
"\n",
""
]
},
"metadata": {}
}
],
"source": [
"# Convertir el DataFrame a formato long\n",
"notas_long = df_grades.copy()\n",
"notas_long = notas_long.loc[:,['math score',\t'reading score',\t'writing score']]\n",
"notas_long = notas_long.melt(var_name='subject', value_name='score')\n",
"\n",
"fig = px.box(notas_long,\n",
" y='score',\n",
" color='subject')\n",
"fig.show()"
]
},
{
"cell_type": "markdown",
"metadata": {
"cell_id": "727a3eb1463548199df76465f7b94706",
"deepnote_cell_height": 52.390625,
"deepnote_cell_type": "markdown",
"id": "AL9J35bn_rM1"
},
"source": [
"**Distplot:**"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"cell_id": "e6585efef4184eb39eb1185516abdde2",
"deepnote_cell_height": 61,
"deepnote_cell_type": "code",
"id": "HurMFybC_rM1",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 542
},
"outputId": "123ad864-f6d5-4b73-a0ff-aa19e9cf9048"
},
"outputs": [
{
"output_type": "display_data",
"data": {
"text/html": [
"\n",
" \n",
"\n",
" \n",
"\n",
""
]
},
"metadata": {}
}
],
"source": [
"# use displot figurefactory\n",
"fig = ff.create_distplot([df_grades['math score'], df_grades['reading score'], df_grades['writing score']],\n",
" ['math score', 'reading score', 'writing score'],\n",
" show_hist=False,\n",
" show_rug=False)\n",
"fig.show()"
]
},
{
"cell_type": "markdown",
"metadata": {
"cell_id": "eab795791deb48ab8e6f0af8358ed80a",
"deepnote_cell_height": 52.390625,
"deepnote_cell_type": "markdown",
"id": "aIDc689K_rM1"
},
"source": [
"**Histograma con Boxplots:**"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"cell_id": "3586b7b8996e45d4ace68d11603e80e2",
"deepnote_cell_height": 61,
"deepnote_cell_type": "code",
"id": "dg4MqukY_rM1",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 542
},
"outputId": "71976634-ffd4-4d3b-994d-fd1f443996c8"
},
"outputs": [
{
"output_type": "display_data",
"data": {
"text/html": [
"\n",
" \n",
"\n",
" \n",
"\n",
""
]
},
"metadata": {}
}
],
"source": [
"# Convertir el DataFrame a formato long pero de una sola columna\n",
"df_notas = df_grades.copy()\n",
"df_notas = df_notas.melt(value_vars=['math score', 'reading score', 'writing score'], var_name='subject')\n",
"\n",
"fig = px.histogram(df_notas,\n",
" x='value',\n",
" color='subject',\n",
" nbins=15,\n",
" marginal='box',\n",
" barmode='group')\n",
"\n",
"fig.update_layout(xaxis_title='grade', yaxis_title='count')\n",
"fig.show()\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"cell_id": "02cf509cf86a41abab431eac25e8fa22",
"deepnote_cell_height": 52.390625,
"deepnote_cell_type": "markdown",
"id": "bc0jAmta_rM1"
},
"source": [
"**Histograma con Faceta:**"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"cell_id": "746ff528322c466fb1f12e54ac10ceb2",
"deepnote_cell_height": 61,
"deepnote_cell_type": "code",
"id": "GPJUOTok_rM1",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 542
},
"outputId": "d7578dd7-c888-4d2d-e791-95a3c12e37cf"
},
"outputs": [
{
"output_type": "display_data",
"data": {
"text/html": [
"\n",
" \n",
"\n",
" \n",
"\n",
""
]
},
"metadata": {}
}
],
"source": [
"fig = px.histogram(df_notas,\n",
" x='value',\n",
" color='subject',\n",
" nbins=15,\n",
" facet_row='subject',\n",
" category_orders={'subject': ['math score', 'reading score', 'writing score']})\n",
"\n",
"fig.update_layout(xaxis_title='grade', yaxis_title='count')\n",
"fig.show()"
]
},
{
"cell_type": "markdown",
"source": [
"### Datos Georeferenciados"
],
"metadata": {
"id": "L4EjV4i_IBaF"
}
},
{
"cell_type": "code",
"source": [
"# Lista de pares de coordenadas de inicio y fin\n",
"coordenadas = [\n",
" {\n",
" 'id': 1,\n",
" 'start_latitude': -33.457780,\n",
" 'start_longitude': -70.664000,\n",
" 'end_latitude': -33.411157,\n",
" 'end_longitude': -70.792565\n",
" },\n",
" {\n",
" 'id': 2,\n",
" 'start_latitude': -33.457780,\n",
" 'start_longitude': -70.664000,\n",
" 'end_latitude': -33.018924,\n",
" 'end_longitude': -71.559252\n",
" },\n",
" {\n",
" 'id': 3,\n",
" 'start_latitude': -33.457780,\n",
" 'start_longitude': -70.664000,\n",
" 'end_latitude': -32.894149,\n",
" 'end_longitude': -68.844930\n",
" },\n",
" # Agrega más pares de coordenadas según tus necesidades\n",
"]"
],
"metadata": {
"id": "JYN8LULyNO2d"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"# Diccionario para almacenar las rutas\n",
"rutas = []\n",
"\n",
"# Bucle para iterar sobre los pares de coordenadas\n",
"for idx, coords in enumerate(coordenadas):\n",
" # Construir la URL de la API de OSRM\n",
" url = f\"http://router.project-osrm.org/route/v1/driving/{coords['start_longitude']},{coords['start_latitude']};{coords['end_longitude']},{coords['end_latitude']}?overview=full\"\n",
"\n",
" # Hacer la solicitud a la API de OSRM\n",
" response = requests.get(url)\n",
" data = json.loads(response.content)\n",
"\n",
" # Obtener la geometría de la ruta\n",
" geometry = data['routes'][0]['geometry']\n",
"\n",
" # Decodificar la geometría utilizando la biblioteca polyline\n",
" coordinates = polyline.decode(geometry)\n",
"\n",
" # Extraer las latitudes y longitudes de las coordenadas\n",
" latitudes = [coord[0] for coord in coordinates]\n",
" longitudes = [coord[1] for coord in coordinates]\n",
"\n",
" # Crear un DataFrame con las latitudes y longitudes\n",
" df = pd.DataFrame({'latitud': latitudes, 'longitud': longitudes})\n",
"\n",
" # Definir la cantidad de puntos deseados (incluyendo el punto de inicio y fin)\n",
" num_puntos = random.randint(10, 15)\n",
"\n",
" # Calcular el tamaño del paso para el resampling\n",
" paso = int(len(df) / (num_puntos - 1))\n",
"\n",
" # Reducir el tamaño del DataFrame utilizando el método resample\n",
" df_stops = df.iloc[::paso]\n",
"\n",
" # Asegurarse de que el punto de inicio y fin estén presentes en el DataFrame reducido\n",
" df_stops = pd.concat([df.iloc[[0]], df_stops, df.iloc[[-1]]], ignore_index=True)\n",
"\n",
" # Agregar una columna 'id' al DataFrame con un ID único para cada ruta\n",
" df_stops['id'] = f\"ruta_{idx}\"\n",
" # Agregar una columna 'arco' al DataFrame con números de arco secuenciales\n",
" df_stops['arco'] = range(1, len(df_stops) + 1)\n",
"\n",
" # Agregar el DataFrame reducido a la lista de rutas\n",
" rutas.append(df_stops)\n",
"\n",
"# Concatenar todos los DataFrames de las rutas en un solo DataFrame\n",
"df_rutas = pd.concat(rutas, ignore_index=True)\n"
],
"metadata": {
"id": "QWKxOKdLLsEJ"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"df_rutas.head()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 206
},
"id": "_RDPG2FnM8r9",
"outputId": "6646c0a2-a393-482d-ad58-b5848c2214ae"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" latitud longitud id arco\n",
"0 -33.45778 -70.66401 ruta_0 1\n",
"1 -33.45778 -70.66401 ruta_0 2\n",
"2 -33.45324 -70.65761 ruta_0 3\n",
"3 -33.43521 -70.66016 ruta_0 4\n",
"4 -33.42577 -70.67225 ruta_0 5"
],
"text/html": [
"\n",
" \n",
"
\n",
"
\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" latitud \n",
" longitud \n",
" id \n",
" arco \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" -33.45778 \n",
" -70.66401 \n",
" ruta_0 \n",
" 1 \n",
" \n",
" \n",
" 1 \n",
" -33.45778 \n",
" -70.66401 \n",
" ruta_0 \n",
" 2 \n",
" \n",
" \n",
" 2 \n",
" -33.45324 \n",
" -70.65761 \n",
" ruta_0 \n",
" 3 \n",
" \n",
" \n",
" 3 \n",
" -33.43521 \n",
" -70.66016 \n",
" ruta_0 \n",
" 4 \n",
" \n",
" \n",
" 4 \n",
" -33.42577 \n",
" -70.67225 \n",
" ruta_0 \n",
" 5 \n",
" \n",
" \n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
"\n",
" \n",
"
\n",
"
\n",
" "
]
},
"metadata": {},
"execution_count": 15
}
]
},
{
"cell_type": "code",
"source": [
"def visualizar_ruta(id_ruta, df_rutas):\n",
" # Filtrar el DataFrame para obtener la ruta específica\n",
" df_stops = df_rutas[df_rutas['id'] == id_ruta]\n",
"\n",
" # Crear un mapa centrado en la primera ubicación\n",
" mapa = folium.Map(location=[df_stops['latitud'].iloc[0], df_stops['longitud'].iloc[0]], zoom_start=14)\n",
"\n",
" # Definir una lista de colores para los trazos de la línea\n",
" colores = ['blue', 'red', 'green', 'orange', 'purple', 'yellow']\n",
"\n",
" # Iterar sobre los puntos y trazar líneas segmentadas con colores y grosor diferentes\n",
" for i in range(len(df_stops) - 1):\n",
" segmento = [\n",
" [df_stops['latitud'].iloc[i], df_stops['longitud'].iloc[i]],\n",
" [df_stops['latitud'].iloc[i + 1], df_stops['longitud'].iloc[i + 1]]\n",
" ] # Segmento de línea entre dos puntos consecutivos\n",
" color = colores[i % len(colores)] # Asignar un color diferente a cada segmento\n",
" folium.PolyLine(locations=segmento, color=color, weight=10).add_to(mapa) # Grosor de línea = 10\n",
"\n",
" # Resaltar los puntos con un marcador y agregar información adicional\n",
" for i in range(len(df_stops)):\n",
" latitud = df_stops['latitud'].iloc[i]\n",
" longitud = df_stops['longitud'].iloc[i]\n",
" folium.Marker(\n",
" location=[latitud, longitud],\n",
" icon=folium.Icon(color='gray'),\n",
" popup=f\"Punto {i+1}: Latitud {latitud}, Longitud {longitud}\"\n",
" ).add_to(mapa)\n",
"\n",
" # Agregar marcadores para el punto de inicio y el destino\n",
" folium.Marker(location=[df_stops['latitud'].iloc[0], df_stops['longitud'].iloc[0]], icon=folium.Icon(color='green')).add_to(mapa)\n",
" folium.Marker(location=[df_stops['latitud'].iloc[-1], df_stops['longitud'].iloc[-1]], icon=folium.Icon(color='red')).add_to(mapa)\n",
"\n",
" # Mostrar el mapa\n",
" return mapa\n"
],
"metadata": {
"id": "71cnCOtFPwhU"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"# Visualizar la ruta con ID 'ruta_0'\n",
"mapa_ruta_0 = visualizar_ruta('ruta_2', df_rutas)\n",
"mapa_ruta_0\n"
],
"metadata": {
"id": "AxUH31BUP1IV",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 712
},
"outputId": "d41f0dda-989d-455f-bf89-37143c6ad251"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
""
],
"text/html": [
"Make this Notebook Trusted to load map: File -> Trust Notebook
"
]
},
"metadata": {},
"execution_count": 20
}
]
},
{
"cell_type": "markdown",
"source": [
"### Caso: Visualización del Tiempo de Viaje"
],
"metadata": {
"id": "UtO6v7DQIf6p"
}
},
{
"cell_type": "code",
"source": [
"import os\n",
"os.chdir('/content/drive/MyDrive/Colab Notebooks/Caso 2/')\n",
"\n",
"px.set_mapbox_access_token(open(\".mapbox_token\").read())"
],
"metadata": {
"id": "3V1iIXgNhQBx"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"df = pd.read_csv('travel_times_masked.csv')"
],
"metadata": {
"id": "mjbnkXMaMBrN"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"df.head(20)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
},
"id": "liME9GVeRFpQ",
"outputId": "019658b3-381c-40b0-f425-a0cca3154961"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" creation_timestamp route_id account_id \\\n",
"0 2023-04-24 05:15:00 UTC 17-GNOWD2x3fLw== a3nQp_hhWErqRA== \n",
"1 2023-04-24 05:15:00 UTC 17-GNOWD2x3fLw== a3nQp_hhWErqRA== \n",
"2 2023-04-24 05:15:00 UTC 17-GNOWD2x3fLw== a3nQp_hhWErqRA== \n",
"3 2023-04-24 05:15:00 UTC 17-GNOWD2x3fLw== a3nQp_hhWErqRA== \n",
"4 2023-04-24 05:15:00 UTC 17-GNOWD2x3fLw== a3nQp_hhWErqRA== \n",
"5 2023-04-24 05:15:00 UTC 17-GNOWD2x3fLw== a3nQp_hhWErqRA== \n",
"6 2023-04-24 05:15:00 UTC 17-GNOWD2x3fLw== a3nQp_hhWErqRA== \n",
"7 2023-04-24 05:15:00 UTC 17-GNOWD2x3fLw== a3nQp_hhWErqRA== \n",
"8 2023-04-24 05:15:00 UTC 17-GNOWD2x3fLw== a3nQp_hhWErqRA== \n",
"9 2023-04-24 05:15:00 UTC SCPQUy_0gEnuRA== a3nQp_hhWErqRA== \n",
"10 2023-04-24 05:15:00 UTC SCPQUy_0gEnuRA== a3nQp_hhWErqRA== \n",
"11 2023-04-24 05:15:00 UTC SCPQUy_0gEnuRA== a3nQp_hhWErqRA== \n",
"12 2023-04-24 05:15:00 UTC SCPQUy_0gEnuRA== a3nQp_hhWErqRA== \n",
"13 2023-04-24 05:15:00 UTC SCPQUy_0gEnuRA== a3nQp_hhWErqRA== \n",
"14 2023-04-24 05:15:00 UTC SCPQUy_0gEnuRA== a3nQp_hhWErqRA== \n",
"15 2023-04-24 05:15:00 UTC SCPQUy_0gEnuRA== a3nQp_hhWErqRA== \n",
"16 2023-04-24 05:15:00 UTC SCPQUy_0gEnuRA== a3nQp_hhWErqRA== \n",
"17 2023-04-24 05:15:00 UTC SCPQUy_0gEnuRA== a3nQp_hhWErqRA== \n",
"18 2023-04-24 05:15:00 UTC SCPQUy_0gEnuRA== a3nQp_hhWErqRA== \n",
"19 2023-04-24 05:15:00 UTC zhoSagXpiRscfw== a3nQp_hhWErqRA== \n",
"\n",
" latitude_start longitude_start leave_time \\\n",
"0 19.417825 -99.119125 2023-04-23 16:30:19.535 UTC \n",
"1 19.417696 -99.119348 2023-04-23 16:39:32 UTC \n",
"2 19.276245 -99.187115 2023-04-23 17:14:50 UTC \n",
"3 19.296062 -99.188143 2023-04-23 17:52:48 UTC \n",
"4 19.319305 -99.201250 2023-04-23 18:03:24 UTC \n",
"5 19.319177 -99.200436 2023-04-23 18:16:29 UTC \n",
"6 19.350651 -99.222151 2023-04-23 18:44:07 UTC \n",
"7 19.365979 -99.197139 2023-04-23 19:02:58 UTC \n",
"8 19.397090 -99.177770 2023-04-23 19:25:56 UTC \n",
"9 19.403624 -99.134300 2023-04-23 16:08:35.804 UTC \n",
"10 19.417870 -99.119583 2023-04-23 16:40:29 UTC \n",
"11 19.448930 -99.145977 2023-04-23 17:09:21 UTC \n",
"12 19.486209 -99.112109 2023-04-23 17:32:31 UTC \n",
"13 19.555848 -99.216253 2023-04-23 18:20:00 UTC \n",
"14 19.547512 -99.224190 2023-04-23 18:35:47 UTC \n",
"15 19.544762 -99.217384 2023-04-23 18:54:35 UTC \n",
"16 19.453425 -99.245549 2023-04-23 19:21:14 UTC \n",
"17 19.418758 -99.254582 2023-04-23 20:01:42 UTC \n",
"18 19.461718 -99.179601 2023-04-23 20:43:02 UTC \n",
"19 19.403612 -99.134337 2023-04-23 22:12:01.323 UTC \n",
"\n",
" latitude_end longitude_end arrival_time \\\n",
"0 19.417696 -99.119348 2023-04-23 16:30:20 UTC \n",
"1 19.276245 -99.187115 2023-04-23 17:10:36 UTC \n",
"2 19.296062 -99.188143 2023-04-23 17:36:24 UTC \n",
"3 19.319305 -99.201250 2023-04-23 18:00:42 UTC \n",
"4 19.319177 -99.200436 2023-04-23 18:03:39 UTC \n",
"5 19.350651 -99.222151 2023-04-23 18:31:48 UTC \n",
"6 19.365979 -99.197139 2023-04-23 18:54:46 UTC \n",
"7 19.397090 -99.177770 2023-04-23 19:20:34 UTC \n",
"8 19.398125 -99.172897 2023-04-23 19:30:11 UTC \n",
"9 19.417870 -99.119583 2023-04-23 16:21:06 UTC \n",
"10 19.448930 -99.145977 2023-04-23 17:02:00 UTC \n",
"11 19.486209 -99.112109 2023-04-23 17:24:14 UTC \n",
"12 19.555848 -99.216253 2023-04-23 18:07:24 UTC \n",
"13 19.547512 -99.224190 2023-04-23 18:27:10 UTC \n",
"14 19.544762 -99.217384 2023-04-23 18:39:20 UTC \n",
"15 19.453425 -99.245549 2023-04-23 19:18:13 UTC \n",
"16 19.418758 -99.254582 2023-04-23 19:52:36 UTC \n",
"17 19.461718 -99.179601 2023-04-23 20:28:17 UTC \n",
"18 19.481525 -99.195156 2023-04-23 20:53:10 UTC \n",
"19 19.415333 -99.104647 2023-04-23 22:36:53 UTC \n",
"\n",
" real_travel_time_second osrm_travel_time_second arc_number \\\n",
"0 0 358 1 \n",
"1 1864 2414 2 \n",
"2 1294 881 3 \n",
"3 474 807 4 \n",
"4 15 361 5 \n",
"5 919 1441 6 \n",
"6 639 848 7 \n",
"7 1056 884 8 \n",
"8 255 521 9 \n",
"9 750 801 1 \n",
"10 1291 1154 2 \n",
"11 893 1293 3 \n",
"12 2093 1765 4 \n",
"13 430 794 5 \n",
"14 213 445 6 \n",
"15 1418 1546 7 \n",
"16 1882 1477 8 \n",
"17 1595 1793 9 \n",
"18 608 705 10 \n",
"19 1491 944 1 \n",
"\n",
" osrm_backend_travel_time_second country \n",
"0 10 MX \n",
"1 1342 MX \n",
"2 349 MX \n",
"3 301 MX \n",
"4 12 MX \n",
"5 712 MX \n",
"6 327 MX \n",
"7 351 MX \n",
"8 116 MX \n",
"9 297 MX \n",
"10 526 MX \n",
"11 616 MX \n",
"12 922 MX \n",
"13 293 MX \n",
"14 66 MX \n",
"15 780 MX \n",
"16 735 MX \n",
"17 940 MX \n",
"18 235 MX \n",
"19 389 MX "
],
"text/html": [
"\n",
" \n",
"
\n",
"
\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" creation_timestamp \n",
" route_id \n",
" account_id \n",
" latitude_start \n",
" longitude_start \n",
" leave_time \n",
" latitude_end \n",
" longitude_end \n",
" arrival_time \n",
" real_travel_time_second \n",
" osrm_travel_time_second \n",
" arc_number \n",
" osrm_backend_travel_time_second \n",
" country \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 2023-04-24 05:15:00 UTC \n",
" 17-GNOWD2x3fLw== \n",
" a3nQp_hhWErqRA== \n",
" 19.417825 \n",
" -99.119125 \n",
" 2023-04-23 16:30:19.535 UTC \n",
" 19.417696 \n",
" -99.119348 \n",
" 2023-04-23 16:30:20 UTC \n",
" 0 \n",
" 358 \n",
" 1 \n",
" 10 \n",
" MX \n",
" \n",
" \n",
" 1 \n",
" 2023-04-24 05:15:00 UTC \n",
" 17-GNOWD2x3fLw== \n",
" a3nQp_hhWErqRA== \n",
" 19.417696 \n",
" -99.119348 \n",
" 2023-04-23 16:39:32 UTC \n",
" 19.276245 \n",
" -99.187115 \n",
" 2023-04-23 17:10:36 UTC \n",
" 1864 \n",
" 2414 \n",
" 2 \n",
" 1342 \n",
" MX \n",
" \n",
" \n",
" 2 \n",
" 2023-04-24 05:15:00 UTC \n",
" 17-GNOWD2x3fLw== \n",
" a3nQp_hhWErqRA== \n",
" 19.276245 \n",
" -99.187115 \n",
" 2023-04-23 17:14:50 UTC \n",
" 19.296062 \n",
" -99.188143 \n",
" 2023-04-23 17:36:24 UTC \n",
" 1294 \n",
" 881 \n",
" 3 \n",
" 349 \n",
" MX \n",
" \n",
" \n",
" 3 \n",
" 2023-04-24 05:15:00 UTC \n",
" 17-GNOWD2x3fLw== \n",
" a3nQp_hhWErqRA== \n",
" 19.296062 \n",
" -99.188143 \n",
" 2023-04-23 17:52:48 UTC \n",
" 19.319305 \n",
" -99.201250 \n",
" 2023-04-23 18:00:42 UTC \n",
" 474 \n",
" 807 \n",
" 4 \n",
" 301 \n",
" MX \n",
" \n",
" \n",
" 4 \n",
" 2023-04-24 05:15:00 UTC \n",
" 17-GNOWD2x3fLw== \n",
" a3nQp_hhWErqRA== \n",
" 19.319305 \n",
" -99.201250 \n",
" 2023-04-23 18:03:24 UTC \n",
" 19.319177 \n",
" -99.200436 \n",
" 2023-04-23 18:03:39 UTC \n",
" 15 \n",
" 361 \n",
" 5 \n",
" 12 \n",
" MX \n",
" \n",
" \n",
" 5 \n",
" 2023-04-24 05:15:00 UTC \n",
" 17-GNOWD2x3fLw== \n",
" a3nQp_hhWErqRA== \n",
" 19.319177 \n",
" -99.200436 \n",
" 2023-04-23 18:16:29 UTC \n",
" 19.350651 \n",
" -99.222151 \n",
" 2023-04-23 18:31:48 UTC \n",
" 919 \n",
" 1441 \n",
" 6 \n",
" 712 \n",
" MX \n",
" \n",
" \n",
" 6 \n",
" 2023-04-24 05:15:00 UTC \n",
" 17-GNOWD2x3fLw== \n",
" a3nQp_hhWErqRA== \n",
" 19.350651 \n",
" -99.222151 \n",
" 2023-04-23 18:44:07 UTC \n",
" 19.365979 \n",
" -99.197139 \n",
" 2023-04-23 18:54:46 UTC \n",
" 639 \n",
" 848 \n",
" 7 \n",
" 327 \n",
" MX \n",
" \n",
" \n",
" 7 \n",
" 2023-04-24 05:15:00 UTC \n",
" 17-GNOWD2x3fLw== \n",
" a3nQp_hhWErqRA== \n",
" 19.365979 \n",
" -99.197139 \n",
" 2023-04-23 19:02:58 UTC \n",
" 19.397090 \n",
" -99.177770 \n",
" 2023-04-23 19:20:34 UTC \n",
" 1056 \n",
" 884 \n",
" 8 \n",
" 351 \n",
" MX \n",
" \n",
" \n",
" 8 \n",
" 2023-04-24 05:15:00 UTC \n",
" 17-GNOWD2x3fLw== \n",
" a3nQp_hhWErqRA== \n",
" 19.397090 \n",
" -99.177770 \n",
" 2023-04-23 19:25:56 UTC \n",
" 19.398125 \n",
" -99.172897 \n",
" 2023-04-23 19:30:11 UTC \n",
" 255 \n",
" 521 \n",
" 9 \n",
" 116 \n",
" MX \n",
" \n",
" \n",
" 9 \n",
" 2023-04-24 05:15:00 UTC \n",
" SCPQUy_0gEnuRA== \n",
" a3nQp_hhWErqRA== \n",
" 19.403624 \n",
" -99.134300 \n",
" 2023-04-23 16:08:35.804 UTC \n",
" 19.417870 \n",
" -99.119583 \n",
" 2023-04-23 16:21:06 UTC \n",
" 750 \n",
" 801 \n",
" 1 \n",
" 297 \n",
" MX \n",
" \n",
" \n",
" 10 \n",
" 2023-04-24 05:15:00 UTC \n",
" SCPQUy_0gEnuRA== \n",
" a3nQp_hhWErqRA== \n",
" 19.417870 \n",
" -99.119583 \n",
" 2023-04-23 16:40:29 UTC \n",
" 19.448930 \n",
" -99.145977 \n",
" 2023-04-23 17:02:00 UTC \n",
" 1291 \n",
" 1154 \n",
" 2 \n",
" 526 \n",
" MX \n",
" \n",
" \n",
" 11 \n",
" 2023-04-24 05:15:00 UTC \n",
" SCPQUy_0gEnuRA== \n",
" a3nQp_hhWErqRA== \n",
" 19.448930 \n",
" -99.145977 \n",
" 2023-04-23 17:09:21 UTC \n",
" 19.486209 \n",
" -99.112109 \n",
" 2023-04-23 17:24:14 UTC \n",
" 893 \n",
" 1293 \n",
" 3 \n",
" 616 \n",
" MX \n",
" \n",
" \n",
" 12 \n",
" 2023-04-24 05:15:00 UTC \n",
" SCPQUy_0gEnuRA== \n",
" a3nQp_hhWErqRA== \n",
" 19.486209 \n",
" -99.112109 \n",
" 2023-04-23 17:32:31 UTC \n",
" 19.555848 \n",
" -99.216253 \n",
" 2023-04-23 18:07:24 UTC \n",
" 2093 \n",
" 1765 \n",
" 4 \n",
" 922 \n",
" MX \n",
" \n",
" \n",
" 13 \n",
" 2023-04-24 05:15:00 UTC \n",
" SCPQUy_0gEnuRA== \n",
" a3nQp_hhWErqRA== \n",
" 19.555848 \n",
" -99.216253 \n",
" 2023-04-23 18:20:00 UTC \n",
" 19.547512 \n",
" -99.224190 \n",
" 2023-04-23 18:27:10 UTC \n",
" 430 \n",
" 794 \n",
" 5 \n",
" 293 \n",
" MX \n",
" \n",
" \n",
" 14 \n",
" 2023-04-24 05:15:00 UTC \n",
" SCPQUy_0gEnuRA== \n",
" a3nQp_hhWErqRA== \n",
" 19.547512 \n",
" -99.224190 \n",
" 2023-04-23 18:35:47 UTC \n",
" 19.544762 \n",
" -99.217384 \n",
" 2023-04-23 18:39:20 UTC \n",
" 213 \n",
" 445 \n",
" 6 \n",
" 66 \n",
" MX \n",
" \n",
" \n",
" 15 \n",
" 2023-04-24 05:15:00 UTC \n",
" SCPQUy_0gEnuRA== \n",
" a3nQp_hhWErqRA== \n",
" 19.544762 \n",
" -99.217384 \n",
" 2023-04-23 18:54:35 UTC \n",
" 19.453425 \n",
" -99.245549 \n",
" 2023-04-23 19:18:13 UTC \n",
" 1418 \n",
" 1546 \n",
" 7 \n",
" 780 \n",
" MX \n",
" \n",
" \n",
" 16 \n",
" 2023-04-24 05:15:00 UTC \n",
" SCPQUy_0gEnuRA== \n",
" a3nQp_hhWErqRA== \n",
" 19.453425 \n",
" -99.245549 \n",
" 2023-04-23 19:21:14 UTC \n",
" 19.418758 \n",
" -99.254582 \n",
" 2023-04-23 19:52:36 UTC \n",
" 1882 \n",
" 1477 \n",
" 8 \n",
" 735 \n",
" MX \n",
" \n",
" \n",
" 17 \n",
" 2023-04-24 05:15:00 UTC \n",
" SCPQUy_0gEnuRA== \n",
" a3nQp_hhWErqRA== \n",
" 19.418758 \n",
" -99.254582 \n",
" 2023-04-23 20:01:42 UTC \n",
" 19.461718 \n",
" -99.179601 \n",
" 2023-04-23 20:28:17 UTC \n",
" 1595 \n",
" 1793 \n",
" 9 \n",
" 940 \n",
" MX \n",
" \n",
" \n",
" 18 \n",
" 2023-04-24 05:15:00 UTC \n",
" SCPQUy_0gEnuRA== \n",
" a3nQp_hhWErqRA== \n",
" 19.461718 \n",
" -99.179601 \n",
" 2023-04-23 20:43:02 UTC \n",
" 19.481525 \n",
" -99.195156 \n",
" 2023-04-23 20:53:10 UTC \n",
" 608 \n",
" 705 \n",
" 10 \n",
" 235 \n",
" MX \n",
" \n",
" \n",
" 19 \n",
" 2023-04-24 05:15:00 UTC \n",
" zhoSagXpiRscfw== \n",
" a3nQp_hhWErqRA== \n",
" 19.403612 \n",
" -99.134337 \n",
" 2023-04-23 22:12:01.323 UTC \n",
" 19.415333 \n",
" -99.104647 \n",
" 2023-04-23 22:36:53 UTC \n",
" 1491 \n",
" 944 \n",
" 1 \n",
" 389 \n",
" MX \n",
" \n",
" \n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
"\n",
" \n",
"
\n",
"
\n",
" "
]
},
"metadata": {},
"execution_count": 23
}
]
},
{
"cell_type": "code",
"source": [
"df.loc[:,'leave_time'] = pd.to_datetime(df.loc[:,'leave_time'],utc =True)"
],
"metadata": {
"id": "VSGybYhDSpzT"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"# Filtrar los viajes de la mañana y la tarde\n",
"morning_trips = df[(df['leave_time'].dt.hour >= 0) & (df['leave_time'].dt.hour < 12)]\n",
"afternoon_trips = df[(df['leave_time'].dt.hour >= 12) & (df['leave_time'].dt.hour <= 23)]\n",
"\n",
"# Obtener los tiempos de viaje promedio para cada hora del día\n",
"morning_avg_travel_times = morning_trips.groupby(morning_trips['leave_time'].dt.hour)['real_travel_time_second'].mean() / 60\n",
"afternoon_avg_travel_times = afternoon_trips.groupby(afternoon_trips['leave_time'].dt.hour)['real_travel_time_second'].mean() / 60\n",
"\n",
"# Crear una lista de las horas del día\n",
"morning_hours = pd.date_range(start='00:00', end='11:00', freq='H').strftime('%H:%M').tolist()\n",
"afternoon_hours = pd.date_range(start='12:00', end='23:00', freq='H').strftime('%H:%M').tolist()\n",
"\n",
"# Crear una lista de los índices de las horas del día\n",
"morning_indices = range(len(morning_hours))\n",
"afternoon_indices = range(len(morning_hours), len(morning_hours) + len(afternoon_hours))\n",
"\n",
"# Asegurar que los datos tengan la misma dimensión\n",
"morning_avg_travel_times = morning_avg_travel_times.reindex(morning_indices, fill_value=0)\n",
"afternoon_avg_travel_times = afternoon_avg_travel_times.reindex(afternoon_indices, fill_value=0)\n",
"\n",
"# Crear el gráfico de líneas para los viajes de la mañana\n",
"plt.plot(morning_indices, morning_avg_travel_times, color='blue', label='Mañana')\n",
"\n",
"# Crear el gráfico de líneas para los viajes de la tarde\n",
"plt.plot(afternoon_indices, afternoon_avg_travel_times, color='orange', label='Tarde')\n",
"\n",
"# Configurar las etiquetas de los ejes\n",
"plt.xlabel('Hora del día')\n",
"plt.ylabel('Tiempo de Viaje Promedio (minutos)')\n",
"\n",
"# Configurar el título del gráfico\n",
"plt.title('Comparación de Tiempos de Viaje - Mañana vs Tarde')\n",
"\n",
"# Mostrar una leyenda con la identificación de las líneas\n",
"plt.legend()\n",
"\n",
"# Establecer los ticks y etiquetas del eje x\n",
"plt.xticks(list(morning_indices) + list(afternoon_indices), morning_hours + afternoon_hours)\n",
"\n",
"# Rotar las etiquetas del eje x para mejorar la legibilidad\n",
"plt.xticks(rotation=45)\n",
"\n",
"# Mostrar el gráfico\n",
"plt.show()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 496
},
"id": "kuJXYXo1YvG8",
"outputId": "346eeecd-dec4-4159-846b-ca0a767f30f9"
},
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
""
],
"image/png": "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oTlz5tDLly9JJpNR586dycLCgsaOHatyUsvttRIJV6WWSqXUqlUr6tKlC0mlUmrevDmtX79e7fZPnz7Ntqz79++TmZkZde3aVWlETnafidyaNe7cuUOlS5emZs2aUb169cjIyIgWLVqU7fY5xSZPOLt27Uqff/45mZmZ0ezZs/NUltz69etJIpGQv78/ffPNNzn2XcitPPlxN378+FyfN7fynj17RmXLls32h0RWue0HeaIzadIkmjhxIjVs2JBevXqV7X7NKbZ79+6Rg4MDjRgxgtavX0/169en3r17Z3vSzy22e/fuKWb4HT58OJUpU4YCAgJozZo1Wpcn5vmBSNxzRGE4P+gKJzt5cO/ePfL09KRr164pLZ88eTJVq1aNFi1apOhU9/btWypXrhy1atVKcY0XuaSkJJo+fTp16tSJTp48SZ9++il5eHhkezDHxcVR8+bNqXHjxipVlkTCfArdu3enL7/8UrEsIyODRo0aRR06dFDZPqfYiISL77Vp04bGjh2rtDwoKIg2btxIy5Yto/v37yuqdt+8eZNjefLXM2bMGFq7di3du3ePzM3NqV+/fpSYmEiLFy9WfMHlFtubN2/Ix8eH/P39FcsGDhxINWrUoJIlS9Knn35KN2/eVHz55VZeeno6NWjQgLZv305ERI0aNaIaNWqQVColb29v+vzzzxW/qmJjY3PcD6GhoSSRSGjatGmKZfv27SNzc3M6deqUyva5xUZE9Pfff1PVqlWVakt69OhBEydOpL59+9KWLVsU8b179y7H+I4cOUJ16tSh169fK5omrl69Ss7OzuTv70+zZs1SNAvkdswRCdXlffv2VboQY2hoKPXo0YPq1q1LK1euVNp+yZIl1Lx5c5XPD5EwoVi9evWoadOm5OzsTN26dVMZgpzZhg0bqEKFCtkOqX369Cn5+PjQpEmTFMff5s2bydXVVe0lLXKK7cmTJ+Tp6al0Ypg9ezZ9+eWXKhdezK2szG7fvk39+/en+fPnk7u7O82bN09trVZu5T169IjMzc0Vx11qaiodOnSINmzYQL/++qvKsZVbeb/99hu1adNGUda0adMoODiYhgwZovicEAk/MnLbD9euXSM7OzuaOnUqERHt3r2bpFKpoi9H1u+6nGL78OEDBQcH05gxYxTLfv31V+rUqZPStbQ0je39+/cUFBREkyZNUiz7999/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\n"
},
"metadata": {}
}
]
},
{
"cell_type": "markdown",
"source": [
"### Paletas de Colores"
],
"metadata": {
"id": "rskZTsSOdGAs"
}
},
{
"cell_type": "code",
"source": [
"# Generar una paleta de colores\n",
"palette = sns.color_palette()\n",
"# Mostrar la paleta de colores\n",
"sns.palplot(palette)\n",
"plt.title('Paleta de colores predeterminada')\n",
"plt.show()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 141
},
"id": "0EK1stCxbufU",
"outputId": "52a74b44-6950-4ca8-88e6-16f919f4efa4"
},
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
""
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAxoAAAB8CAYAAADuBcaIAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAXGUlEQVR4nO3de3RNd97H8c9JyMk9SIKIkIhrZE2sZpZ6LMS4TIVKi8ijahGUmaIuU6Y1ZioZLC3qMqqdZc00o5dhELRjqKDx0KF0tdRtWtcQ0UXc00QSk/yeP7pyliP3dOtp6v1ayx/nt3977+/+7Z3tfM7Zex+bMcYIAAAAACzk5uoCAAAAAPz0EDQAAAAAWI6gAQAAAMByBA0AAAAAliNoAAAAALAcQQMAAACA5QgaAAAAACxH0AAAAABgOYIGAAAAAMsRNABYLjw8XMnJya4uo1p79uyRzWbTnj17XF1KherLOP7Y/Nj36/fRu3dv9e7d2yXrTk5OVnh4uEvWDaB+ImgA0N/+9jfZbDbHP09PT7Vv315TpkzRlStXfrA6CgoKlJKS8pN8g4j6Yf/+/UpJSdGtW7dcXQoA1HsNXF0AgB+PP/7xj4qIiFBhYaE++eQTvfXWW9q2bZuOHz8ub2/vh77+goICpaamSpLLPrXFo23//v1KTU1VcnKyGjVq5OpyysnIyHB1CQBQYwQNAA7x8fH6+c9/Lkl67rnnFBgYqKVLl+qDDz7QM8884+Lq8H0UFhbKw8NDbm4/3i+yS0tLVVxcLE9PT1eXYrmCggJLwrqHh4cF1QDAD+PH+z8OAJfr06ePJOn8+fOSpCVLlqh79+4KDAyUl5eXYmNjtXHjxhot69atW5o+fbrCwsJkt9vVtm1bvfbaayotLZUkZWVlKTg4WJKUmprquIwrJSVFknT06FElJyerTZs28vT0VPPmzTVu3Dhdv369Ruu/dOmSnn76afn4+Khp06aaMWOGioqKKux78OBBDRgwQAEBAfL29lZcXJz+/e9/12g9hYWFSklJUfv27eXp6amQkBANHTpUZ8+edfTJz8/Xiy++6BiLDh06aMmSJTLGVLv8c+fOafjw4WrSpIm8vb3VrVs3/etf/3LqU3aPwrp16/T73/9eoaGh8vb21p07d2q8fXl5eZo+fbrCw8Nlt9vVtGlT9e/fX1988UWV9aWkpMhms+mrr75SUlKS/P39FRgYqGnTpqmwsNCpr81m05QpU/T++++rc+fOstvt+uijjyRJOTk5GjdunJo1aya73a7OnTvr7bffLrc+K/drSkqKZs2aJUmKiIhwHINZWVmOPu+9955iY2Pl5eWlJk2aaMSIEcrOznZaT+/evRUdHa3PP/9cvXr1kre3t373u98pKytLNptNS5Ys0apVq9SmTRt5e3vrl7/8pbKzs2WM0bx589SyZUt5eXnpqaee0o0bN8ot+/5v+8r29fr167VgwQK1bNlSnp6e6tu3r86cOeM07759+zR8+HC1atVKdrtdYWFhmjFjhu7evVturLZs2aLo6Gh5enoqOjpamzdvrnBMv885AcBPH99oAKhU2ZvjwMBASdKKFSuUkJCgZ599VsXFxVq3bp2GDx+urVu3atCgQZUup6CgQHFxccrJydGvfvUrtWrVSvv379fs2bP1zTffaPny5QoODtZbb72l559/XkOGDNHQoUMlST/72c8kSTt37tS5c+c0duxYNW/eXCdOnNDq1at14sQJffrpp7LZbJWu/+7du+rbt68uXryoqVOnqkWLFnr33Xf18ccfl+v78ccfKz4+XrGxsZo7d67c3NyUlpamPn36aN++feratWul6ykpKdGTTz6p3bt3a8SIEZo2bZry8vK0c+dOHT9+XJGRkTLGKCEhQZmZmRo/fry6dOmiHTt2aNasWcrJydGyZcsqXf6VK1fUvXt3FRQUaOrUqQoMDNSaNWuUkJCgjRs3asiQIU79582bJw8PD82cOVNFRUXy8PCo8fb9+te/1saNGzVlyhRFRUXp+vXr+uSTT/Sf//xHjz32WKU1lklKSlJ4eLgWLlyoTz/9VH/605908+ZNvfPOO+XGe/369ZoyZYqCgoIUHh6uK1euqFu3bo4gEhwcrO3bt2v8+PG6c+eOpk+f/lD269ChQ3Xq1CmtXbtWy5YtU1BQkCQ5AvCCBQv0hz/8QUlJSXruueeUm5urlStXqlevXjp8+LDTpVbXr19XfHy8RowYoVGjRqlZs2aOae+//76Ki4v1wgsv6MaNG1q0aJGSkpLUp08f7dmzRy+99JLOnDmjlStXaubMmRUGrAe9+uqrcnNz08yZM3X79m0tWrRIzz77rA4ePOjos2HDBhUUFOj5559XYGCgDh06pJUrV+rSpUvasGGDo19GRoaGDRumqKgoLVy4UNevX9fYsWPVsmXLcuut6zkBwCPCAHjkpaWlGUlm165dJjc312RnZ5t169aZwMBA4+XlZS5dumSMMaagoMBpvuLiYhMdHW369Onj1N66dWszZswYx+t58+YZHx8fc+rUKad+L7/8snF3dzcXL140xhiTm5trJJm5c+eWq/HBdRtjzNq1a40ks3fv3iq3b/ny5UaSWb9+vaMtPz/ftG3b1kgymZmZxhhjSktLTbt27cwTTzxhSktLndYdERFh+vfvX+V63n77bSPJLF26tNy0suVt2bLFSDLz5893mp6YmGhsNps5c+aMo+3BcZw+fbqRZPbt2+doy8vLMxERESY8PNyUlJQYY4zJzMw0kkybNm2cxq022xcQEGAmT55c5fZWZO7cuUaSSUhIcGqfNGmSkWS+/PJLR5sk4+bmZk6cOOHUd/z48SYkJMRcu3bNqX3EiBEmICDAsU0PY78uXrzYSDLnz593WndWVpZxd3c3CxYscGo/duyYadCggVN7XFyckWT+/Oc/O/U9f/68kWSCg4PNrVu3HO2zZ882kkxMTIy5d++eo/2ZZ54xHh4eprCw0GnZcXFxjtdl+7pTp06mqKjI0b5ixQojyRw7dsxpex+0cOFCY7PZzIULFxxtXbp0MSEhIU41ZmRkGEmmdevWTvPX9JwA4NHEpVMAHPr166fg4GCFhYVpxIgR8vX11ebNmxUaGipJ8vLycvS9efOmbt++rZ49e1Z7Oc2GDRvUs2dPNW7cWNeuXXP869evn0pKSrR3795qa7t/3YWFhbp27Zq6desmSdWuf9u2bQoJCVFiYqKjzdvbWxMnTnTqd+TIEZ0+fVojR47U9evXHXXm5+erb9++2rt3r+NSr4qkp6crKChIL7zwQrlpZd+4bNu2Te7u7po6darT9BdffFHGGG3fvr3K7ejatat69OjhaPP19dXEiROVlZWlkydPOvUfM2aM07jVZvsaNWqkgwcP6vLly5XWU5XJkyc7vS4bk23btjm1x8XFKSoqyvHaGKP09HQNHjxYxhin4+WJJ57Q7du3Hfv7h9qvkrRp0yaVlpYqKSnJqabmzZurXbt2yszMdOpvt9s1duzYCpc1fPhwBQQEOF4//vjjkqRRo0apQYMGTu3FxcXKycmpsjZJGjt2rNP9Gz179pT03aV2Ze4/FvLz83Xt2jV1795dxhgdPnxYkvTNN9/oyJEjGjNmjFON/fv3d9pPFS2zNucEAI8GLp0C4LBq1Sq1b99eDRo0ULNmzdShQwenm4e3bt2q+fPn68iRI07XwVd12ZIknT59WkePHnVcgvKgq1evVlvbjRs3lJqaqnXr1pXrf/v27SrnvXDhgtq2bVuuzg4dOpSrU/ruDXplbt++rcaNG1c47ezZs+rQoYPTm8WKamnRooX8/Pyc2jt16uSYXtW8ZW9KK5s3Ojra0R4REeHUrzbbt2jRIo0ZM0ZhYWGKjY3VwIEDNXr0aLVp06bSee/Xrl07p9eRkZFyc3Nzut+hohpzc3N169YtrV69WqtXr65w2WX7/4far2XLMMaU264yDRs2dHodGhpa6Y3brVq1cnpd9oY+LCyswvabN29WWldlyyzblvvnvXjxol555RV9+OGH5ZZZ9jdUdvxVtJ0dOnQoFyDqek4A8GggaABw6Nq1q+OpUw/at2+fEhIS1KtXL7355psKCQlRw4YNlZaWpr///e9VLre0tFT9+/fXb3/72wqnt2/fvtrakpKStH//fs2aNUtdunSRr6+vSktLNWDAgGo/ja6psuUsXrxYXbp0qbCPr6+vJev6Idz/abNUu+1LSkpSz549tXnzZmVkZGjx4sV67bXXtGnTJsXHx9e6lsreeFZW46hRoyoNBmX37dSUFfu1tLRUNptN27dvl7u7e7XzP7hd96to/qraTQ0eElDdvCUlJerfv79u3Lihl156SR07dpSPj49ycnKUnJxcp7+h73NOAPBoIGgAqJH09HR5enpqx44dstvtjva0tLRq542MjNS3336rfv36VdmvsjejN2/e1O7du5WamqpXXnnF0V72SXV1WrdurePHj8sY47SOr7/+ulydkuTv719trRWJjIzUwYMHde/evXKfcN9fy65du5SXl+f0rcZXX33lmF7VdjxYc03nLatPqvn2hYSEaNKkSZo0aZKuXr2qxx57TAsWLKhR0Dh9+rTTtxVnzpxRaWlptb8sHRwcLD8/P5WUlFRb48PYr5Udg2U38kdERNQoGP/YHDt2TKdOndKaNWs0evRoR/vOnTud+pUdQxX9bT04rt/nnADg0cA9GgBqxN3dXTabTSUlJY62rKwsbdmypdp5k5KSdODAAe3YsaPctFu3bum///2vJDl+Z+DBX2Uu+7T2wU92ly9fXqPaBw4cqMuX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\n"
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [
"# Generar una paleta de colores\n",
"palette1 = sns.color_palette(\"pastel\")\n",
"# Mostrar la paleta de colores\n",
"sns.palplot(palette1)\n",
"plt.title('Paleta de colores pastel')\n",
"plt.show()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 141
},
"id": "sbrqba9ebFVd",
"outputId": "39566baa-567a-42f6-fee0-e15eee24cc17"
},
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
""
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAxoAAAB8CAYAAADuBcaIAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAATvUlEQVR4nO3de3BU5f3H8c8Gcr9BElKSEMgd5RbGOJShIpSLIRFTwJAR/A0g9dJGClilg2NtkqrjIEhoy2WKbVO0o6kGUaBpQSAOKAG1VhEUC4Fwi0MAIWyyBGjy/P5wssOS66bHLovv10z+yDnPnvN9vnuS7Cfn7FmbMcYIAAAAACzk4+kCAAAAANx8CBoAAAAALEfQAAAAAGA5ggYAAAAAyxE0AAAAAFiOoAEAAADAcgQNAAAAAJYjaAAAAACwHEEDAAAAgOUIGgC+sxISEjRnzhxPl9Gpd999VzabTe+++66nS2mTt/TxZnCjHwsAcC2CBgCv8ec//1k2m835FRAQoLS0NM2bN0+nT5/+n9XhcDhUWFjIiz24heMGwHdNT08XAADu+vWvf63ExEQ1Njbqvffe05o1a1ReXq79+/crKCjoW9+/w+FQUVGRJGns2LHf+v5wc+C4AfBdQ9AA4HWysrJ0++23S5IefPBBRUZGavny5Xr77bc1Y8YMD1eH/0ZjY6P8/Pzk48MJdwDwdvwmB+D1xo0bJ0k6evSoJGnZsmUaNWqUIiMjFRgYqIyMDJWVlXVpWxcuXNDChQsVHx8vf39/paSkaMmSJWpubpYkVVdXq0+fPpKkoqIi52VchYWFkqR9+/Zpzpw5SkpKUkBAgPr27au5c+fq3LlzXdr/yZMnNWXKFAUHBys6OlqPPfaYLl++3ObYvXv3atKkSQoPD1dQUJDGjBmj999/v0v7aWxsVGFhodLS0hQQEKCYmBhNmzZNVVVVzjENDQ16/PHHnb0YOHCgli1bJmNMp9s/cuSIpk+froiICAUFBWnkyJH629/+5jKm5f0GpaWl+uUvf6m4uDgFBQXp4sWLXZ6f3W7XwoULlZCQIH9/f0VHR2vixIn6+OOPO6yvsLBQNptNBw8eVF5ensLCwhQZGakFCxaosbHRZWxJSYnGjRun6Oho+fv7a9CgQVqzZk2rbX700UfKzMxUVFSUAgMDlZiYqLlz50rq/LiRpIMHDyo3N1cREREKCAjQ7bffro0bN3baawC4UXFGA4DXa3lxHBkZKUn6zW9+o5ycHN1///26cuWKSktLNX36dG3evFl33313u9txOBwaM2aMTp06pUceeUT9+/fX7t279eSTT+qrr77SihUr1KdPH61Zs0Y//elPNXXqVE2bNk2SNGzYMEnSO++8oyNHjuiBBx5Q3759deDAAa1du1YHDhzQnj17ZLPZ2t3/pUuXNH78eB0/flzz589XbGysXnnlFe3YsaPV2B07digrK0sZGRkqKCiQj4+P8wXxrl27NGLEiHb309TUpMmTJ2v79u267777tGDBAtntdr3zzjvav3+/kpOTZYxRTk6OKioq9OMf/1jDhw/Xli1btGjRIp06dUrFxcXtbv/06dMaNWqUHA6H5s+fr8jISK1bt045OTkqKyvT1KlTXcY/88wz8vPz0xNPPKHLly/Lz8+vy/P7yU9+orKyMs2bN0+DBg3SuXPn9N577+mLL77Qbbfd1m6NLfLy8pSQkKDnn39ee/bs0W9/+1udP39eL7/8snPMmjVrNHjwYOXk5Khnz57atGmT8vPz1dzcrEcffVSSVFtbq7vuukt9+vTR4sWL1atXL1VXV+vNN9+UpE6PmwMHDugHP/iB4uLitHjxYgUHB+v111/XlClTtH79+lY9AwCvYADAS5SUlBhJZtu2bebMmTPmxIkTprS01ERGRprAwEBz8uRJY4wxDofD5XFXrlwxQ4YMMePGjXNZPmDAADN79mzn988884wJDg42//73v13GLV682PTo0cMcP37cGGPMmTNnjCRTUFDQqsbr922MMa+99pqRZHbu3Nnh/FasWGEkmddff925rKGhwaSkpBhJpqKiwhhjTHNzs0lNTTWZmZmmubnZZd+JiYlm4sSJHe7nT3/6k5Fkli9f3mpdy/beeustI8k8++yzLutzc3ONzWYzhw8fdi67vo8LFy40ksyuXbucy+x2u0lMTDQJCQmmqanJGGNMRUWFkWSSkpJc+ubO/MLDw82jjz7a4XzbUlBQYCSZnJwcl+X5+flGkvn0009d9nu9zMxMk5SU5Px+w4YNRpL58MMP291nR8fN+PHjzdChQ01jY6NzWXNzsxk1apRJTU11LmvpWcuxAAA3Mi6dAuB1JkyYoD59+ig+Pl733XefQkJCtGHDBsXFxUmSAgMDnWPPnz+vuro6jR49utPLad544w2NHj1avXv31tmzZ51fEyZMUFNTk3bu3Nlpbdfuu7GxUWfPntXIkSMlqdP9l5eXKyYmRrm5uc5lQUFBevjhh13GffLJJzp06JBmzpypc+fOOetsaGjQ+PHjtXPnTuelXm1Zv369oqKi9LOf/azVupYzLuXl5erRo4fmz5/vsv7xxx+XMUZ///vfO5zHiBEjdMcddziXhYSE6OGHH1Z1dbU+//xzl/GzZ8926Zs78+vVq5f27t2rmpqaduvpSMsZiRYtPSkvL3cuu7a2uro6nT17VmPGjNGRI0dUV1fnrEOSNm/erKtXr7pVw9dff60dO3YoLy9PdrvdOd9z584pMzNThw4d0qlTp7ozPQDwKC6dAuB1Vq1apbS0NPXs2VPf+973NHDgQJc3D2/evFnPPvusPvnkE5f3N3R02ZIkHTp0SPv27XNeS3+92traTmv7+uuvVVRUpNLS0lbjW16UtufYsWNKSUlpVefAgQNb1Sl98wK9PXV1derdu3eb66qqqjRw4ED17Nn+n4Bjx44pNjZWoaGhLstvvfVW5/qOHvv973+/1fJrHztkyBDn8sTERJdx7szvhRde0OzZsxUfH6+MjAxlZ2dr1qxZSkpKavex10pNTXX5Pjk5WT4+PqqurnYue//991VQUKDKyko5HI5WdYSHh2vMmDG69957VVRUpOLiYo0dO1ZTpkzRzJkz5e/v32ENhw8fljFGTz/9tJ5++uk2x9TW1jqDNAB4C4IGAK8zYsQI512nrrdr1y7l5OTozjvv1OrVqxUTEyNfX1+VlJTo1Vdf7XC7zc3Nmjhxon7xi1+0uT4tLa3T2vLy8rR7924tWrRIw4cPV0hIiJqbmzVp0qQOzzK4o2U7S5cu1fDhw9scExISYsm+/heuPWMguTe/vLw8jR49Whs2bNDWrVu1dOlSLVmyRG+++aaysrLcruX6kFdVVaXx48frlltu0fLlyxUfHy8/Pz+Vl5eruLjYWavNZlNZWZn27NmjTZs2acuWLZo7d65efPFF7dmzp8Pno2UbTzzxhDIzM9sck5KS4vZcAMDTCBoAbirr169XQECAtmzZ4vKf5JKSkk4fm5ycrPr6ek2YMKHDce2dGTl//ry2b9+uoqIi/epXv3Iub/kPfWcGDBig/fv3yxjjso8vv/yyVZ2SFBYW1mmtbUlOTtbevXt19epV+fr6tlvLtm3bZLfbXc5qHDx40Lm+o3lcX3NXH9tSn9T1+cXExCg/P1/5+fmqra3Vbbfdpueee65LQePQoUMuZ1QOHz6s5uZmJSQkSJI2bdqky5cva+PGjerfv79zXEVFRZvbGzlypEaOHKnnnntOr776qu6//36VlpbqwQcfbPe4aTn74uvr263nEwBuVLxHA8BNpUePHrLZbGpqanIuq66u1ltvvdXpY/Py8lRZWaktW7a0WnfhwgX95z//kSTnhwJeuHCh1b4ltbr964oVK7pUe3Z2tmpqalxuxetwOLR27VqXcRkZGUpOTtayZctUX1/fajtnzpzpcD/33nuvzp49q5UrV7Za11J7dna2mpqaWo0pLi6WzWbr8EV8dna2PvjgA1VWVjqXNTQ0aO3atUpISNCgQYM6rK+r82tqamp1OVp0dLRiY2PbvSXw9VatWuXy/e9+9ztJcs6vree0rq6uVXA9f/58q+e95WxMSy3tHTfR0dEaO3asfv/73+urr75qVWNnzycA3Kg4owHgpnL33Xdr+fLlmjRpkmbOnKna2lqtWrVKKSkp2rdvX4ePXbRokTZu3KjJkydrzpw5ysjIUENDgz777DOVlZWpurra+RkJgwYN0l//+lelpaUpIiJCQ4YM0ZAhQ3TnnXfqhRde0NWrVxUXF6etW7c6P9+jMw899JBWrlypWbNm6Z///KdiYmL0yiuvtPq0cx8fH/3hD39QVlaWBg8erAceeEBxcXE6deqUKioqFBYWpk2bNrW7n1mzZunll1/Wz3/+c33wwQcaPXq0GhoatG3bNuXn5+tHP/qR7rnnHv3whz/UU089perqaqWnp2vr1q16++23tXDhQudZh7YsXrxYr732mrKysjR//nxFRERo3bp1Onr0qNavX9/ph/F1dX52u139+vVTbm6u0tPTFRISom3btunDDz/Uiy++2KWeHz16VDk5OZo0aZIqKyv1l7/8RTNnzlR6erok6a677pKfn5/uuecePfLII6qvr9dLL72k6Ohol1Cwbt06rV69WlOnTlVycrLsdrteeuklhYWFKTs7W5I6PG5WrVqlO+64Q0OHDtVDDz2kpKQknT59WpWVlTp58qQ+/fTTLs0HAG4oHrzjFQC4peX2th3dQtQYY/74xz+a1NRU4+/vb2655RZTUlLivJ3pta6/Lasx39yG9cknnzQpKSnG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\n"
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [
"palette2 = sns.color_palette(\"Set2\")\n",
"sns.palplot(palette2)\n",
"plt.title('Paleta de colores set 2')\n",
"plt.show()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 141
},
"id": "pdIF-MzWbj2l",
"outputId": "591e725a-d7f0-4ce1-9812-27ad2bb9f8cf"
},
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
""
],
"image/png": "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\n"
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [
"# Obtener la paleta de colores para daltónicos\n",
"colorblind_palette = sns.color_palette(\"colorblind\")\n",
"\n",
"# Mostrar la paleta de colores\n",
"sns.palplot(colorblind_palette)\n",
"plt.title('Paleta de colores para daltónicos')\n",
"plt.show()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 141
},
"id": "4_kqACU6bZuJ",
"outputId": "6db343e1-1b37-40fe-cd67-9ddb2d8497bd"
},
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
""
],
"image/png": "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\n"
},
"metadata": {}
}
]
},
{
"cell_type": "markdown",
"source": [
"### Material Extra"
],
"metadata": {
"id": "kko20r5EB7f5"
}
},
{
"cell_type": "markdown",
"source": [
"#### Guía de Visualizaciones"
],
"metadata": {
"id": "VgHI9dJ7DXUs"
}
},
{
"cell_type": "code",
"source": [
"from IPython.display import Image\n",
"Image(url='https://github.com/cristobalperezp/Articles-TDS/raw/main/IMG_7919.PNG', width=1250)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 926
},
"id": "ZX_9OORGC6UM",
"outputId": "d27134d9-8ed5-4525-fdbb-0cff0debd140"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
" "
],
"text/plain": [
""
]
},
"metadata": {},
"execution_count": 31
}
]
},
{
"cell_type": "markdown",
"source": [
"#### Fuentes con buena visualización de datos"
],
"metadata": {
"id": "8eZaEw-nDbTG"
}
},
{
"cell_type": "markdown",
"source": [
"[The Economist](https://medium.economist.com/tagged/data-visualization)"
],
"metadata": {
"id": "EWMwK4TKEz7B"
}
},
{
"cell_type": "code",
"source": [
"Image(url='https://miro.medium.com/v2/resize:fit:2000/format:webp/1*I6Sz_bMCmW0ZKjnWJPWOaw.png', width=1250)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 538
},
"id": "zDg36QtTEy59",
"outputId": "c69d5d4b-8d5f-4fd4-ceae-bfb2d893b5a1"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
" "
],
"text/plain": [
""
]
},
"metadata": {},
"execution_count": 32
}
]
},
{
"cell_type": "markdown",
"source": [
"[Visual Capitalist](https://www.visualcapitalist.com/)"
],
"metadata": {
"id": "PB1Z7J89F2nh"
}
},
{
"cell_type": "code",
"source": [
"Image(url='https://www.visualcapitalist.com/wp-content/uploads/2023/04/old_sl-a010697ad5732fc0517214efb7736ff9-1.png', width=1250)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 762
},
"id": "TMEnp9JAGLIS",
"outputId": "1fa7952e-5c25-4056-df73-f4920a637e09"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
" "
],
"text/plain": [
""
]
},
"metadata": {},
"execution_count": 33
}
]
},
{
"cell_type": "markdown",
"source": [
"[The Guardian](https://www.theguardian.com/us-news/2022/dec/30/guardian-data-stories-visualized-2022)"
],
"metadata": {
"id": "AkR5A1cxHZDR"
}
},
{
"cell_type": "code",
"source": [
"Image(url='https://i.guim.co.uk/img/media/dcf8a64547e8e27a31482e86da34788cadb2224d/0_0_1920_1152/master/1920.jpg?width=620&quality=45&dpr=2&s=none', width=1250)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 791
},
"id": "0aoiWFthHaxr",
"outputId": "b93215b5-6f19-493d-ce47-9c3926601431"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
" "
],
"text/plain": [
""
]
},
"metadata": {},
"execution_count": 34
}
]
},
{
"cell_type": "markdown",
"source": [
"### Contacto:"
],
"metadata": {
"id": "7-ytVIIPIUN_"
}
},
{
"cell_type": "markdown",
"source": [
"Correo electrónico: cristobal.perez.p99@gmail.com \n",
"\n",
"LinkedIn: [Cristóbal Pérez P.](https://www.linkedin.com/in/cristobal-perez-palma/)\n",
"\n",
"Instagram: [@cristobal_perezp](https://www.instagram.com/cristobal_perezp/)"
],
"metadata": {
"id": "-YXYLv9SJLLb"
}
}
]
}