<jupyter_start><jupyter_text>[![img/pythonista.png](img/pythonista.png)](https://www.pythonista.io)  Introducción a *Plotnine*. [*Pltonine*](https://plotnine.readthedocs.io/en/stable/) es un proyecto que aprovecha la gramática de gráficas por capas desarrollada por <NAME>, el creador de [*ggplot2*](https://ggplot2.tidyverse.org/), la popular herramienta de visualización de datos para *R*.Para conocer más sobre la teoría de la gramática de capas, es  pisble conasultar la siguiente liga:http://vita.had.co.nz/papers/layered-grammar.html<jupyter_code>!pip install plotnine
from plotnine import ggplot, aes, geom_line, geom_smooth, geom_histogram, geom_col, theme_xkcd, theme, element_text, lims, stat_quantile
import pandas as pd
import numpy as np
from datetime import datetime
from typing import Any<jupyter_output><empty_output><jupyter_text>Gramática de capas de un gráfico. La gramática de capas define una estructura de elementos que condformnan un gráfico.* Datos y  mapeo estético.* Objetos geométricos.* Escalas.* Especificación de faceta.* Transfromaciones específicas.* Sistema de coordenadas.  Sintaxis de la gramática.  La función ```ggplot()```. ```ggplot(data=, mapping=, )```  La función ```aes()```.  Funciones de geometría. https://plotnine.readthedocs.io/en/stable/api.htmlgeoms<jupyter_code>np.random.seed(23523889)
arreglo_base = pd.DataFrame(np.random.normal(12, 25, 1000), columns=pd.Index(['observaciones']))
arreglo_base
ggplot(data=arreglo_base)
ggplot(data=arreglo_base, mapping=aes(x='observaciones')) + geom_histogram()
(ggplot(data=arreglo_base, mapping=aes(x='observaciones')) + 
geom_histogram(bins=10, fill='yellow', color="orange"))
histograma = pd.DataFrame(np.histogram(arreglo_base, bins=13)).T
histograma.columns = pd.Index(['frecuencias','rangos'])
ggplot(histograma, aes(x='rangos', y='frecuencias', fill='rangos')) + geom_col()
ggplot(histograma, aes(x='rangos', y='frecuencias', fill='rangos')) + geom_col()
 
casos = pd.read_csv('data/casos_confirmados.csv').set_index('nombre')
entidades = casos.T[2:].reset_index()
cols = entidades.columns.to_list()
cols[0] = 'fechas'
entidades.columns = pd.Index(cols)
entidades['fechas'] = pd.to_datetime(entidades['fechas'],infer_datetime_format=True)
entidades
(ggplot(entidades, aes(x='fechas', y='Nacional'))
+ geom_line() 
+ geom_smooth(color='red'))
(ggplot(entidades, aes(x='fechas', y='Nacional'))
+ geom_line() 
+ geom_smooth(span=0.07, color='red'))
(ggplot(entidades, aes(x='fechas', y='Nacional')) 
 + geom_line() 
 + geom_smooth(span=0.15, color='blue') 
 + theme_xkcd())
data = entidades.iloc[365].to_frame()[1:-1].reset_index()
data.columns = pd.Index(['Entidad', 'Casos'])
data.info()
(ggplot(data, aes(x='Entidad', y='Casos', fill='Casos'))  
 + geom_col()
 + theme(axis_text_x=element_text(rotation=90, hjust=0.5)))
data['Casos'] = data['Casos'].astype(int)
(ggplot(data, aes(x='Entidad', y='Casos', fill='Casos'))  
 + geom_col()
 + theme(axis_text_x=element_text(rotation=90, hjust=0.5)))<jupyter_output><empty_output>
StarcoderdataJupyterStructuredCleanDedup