# ---
# jupyter:
#   jupytext:
#     text_representation:
#       extension: .py
#       format_name: light
#       format_version: '1.5'
#       jupytext_version: 1.14.4
#   kernelspec:
#     display_name: Python 3
#     language: python
#     name: python3
# ---

# # Capitulo I
#
# ## La diferencia entre el trazado estático e interactivo
#
# En el mundo de la visualización de datos, hay tres bibliotecas principales que usan Python que dominan el mercado, y estas son las siguientes:
#
# Matplotlib
# Seaborn
# Bokeh
# Los dos primeros, Matplotlib y Seaborn, le permiten trazar gráficos estáticos, gráficos que no cambian y gráficos con los que no se puede interactuar. Estos gráficos son útiles y agregan valor al realizar análisis de datos exploratorios, ya que son rápidos y fáciles de implementar y muy rápidos de ejecutar.
#
# La tercera biblioteca de trazado, Bokeh, le permite trazar trazados interactivos, trazados que cambian cuando el usuario interactúa con ellos. Estas tramas son útiles cuando desea brindar a su audiencia una amplia gama de opciones y herramientas para inferir y ver datos desde varios ángulos 

# ## Dependencia de Bokeh

# - Numpy
# - Jinja2
# - Six
# - Requests
# - Tornado
# - PyYaml
# - DateUtil
#

# # Instalacion de Bokeh
#

# conda install bokeh
# or
# pip install bokeh

# # Para verificar la version de instalacion de Bokeh
#

import bokeh
bokeh.__version__

# ## Conceptos clave y los componentes básicos de Bokeh
#
#
# ### Las siguientes son algunas definiciones clave relacionadas con Bokeh:
#
# Aplicación: la aplicación Bokeh es un documento Bokeh renderizado que se ejecuta en el navegador.
#
# Glifos (Glyphs): los glifos son los bloques de construcción de Bokeh, y son las líneas, círculos, rectángulos y otras formas que ves en un diagrama de Bokeh.
#
# Servidor: el servidor Bokeh se utiliza para compartir y publicar tramas interactivas y aplicaciones para el público que elija.
#
# Widgets: los widgets en Bokeh son los controles deslizantes, los menús desplegables y otras herramientas pequeñas que puedes insertar en tu trama para agregar algo de interactividad "

# # Formas de visualizar una graficas:
#     - output_file 
#     Este metodo muestra la figura en formato html en una 
#     pagina web.
#     
#     - output_notebook
#     Muestra la imagen en un Jupyter Notebook

# ## Graficar con glyphos
#
# Los glifos son los bloques de construcción fundamentales de Bokeh y se utilizan para crear una gran variedad de graficas. De hecho, cada grafica que construye mientras trabaja con Bokeh tiene un mecanismo de glifos adjunto, como líneas, rectángulos, círculos y cualquier otro objeto que componga la trama.
#
# En este apartado, aprenderá sobre los siguientes temas:
#
# - Que son los glifos
# - Cómo puedes trazar con glifos
# - Cómo crear diagramas de dispersión usando glifos
# - Cómo puedes personalizar los glifos "

# ## ¿Qué son los glifos?
#
# Cuando ve una grafica, interactiva o no, generalmente está compuesta de formas geométricas que componen cada elemento de esa grafica. En Bokeh, estas formas geométricas se llaman glifos. Si quisiéramos crear un diagrama de línea, tendríamos que usar una línea para representar la información en el diagrama, y si quisiéramos crear un diagrama de dispersión con un círculo como marcador, usaríamos un círculo para representar esa información.
#
# Estas formas geométricas que se utilizan para transmitir información visual a los lectores sobre un dato se denominan glifos.
#
#

# ## Graficas con Glyphos

# ## Gráficos de líneas:
# los gráficos de líneas ofrecen una forma de visualizar los movimientos de los puntos a lo largo de los ejes X e Y en forma de línea. Estas graficas son útiles para realizar análisis de series de tiempo ".
#
#

# +
# Importar los paquetes requeridos
    
from bokeh.io import output_notebook, show
from bokeh.plotting import figure

# Crear los puntos de datos para $x y y$

x = [2,4,6,8,10]
y = [4,8,12,16,20]

# llamar la funcion " figure()", para crear la grafica

plot = figure()

# Crear una grafica de linea, color y grosor

plot.line(x,y, color='green', line_width=5)

# crear marcas en las intecciones entre x, y 
# y definir el tamaño de las marcas y color

plot.cross(x,y, size = 20, color= 'red')

# Mostrar la grafica

output_notebook()
show(plot)
# -

# ## Gráficos de barras: 
# Los gráficos de barras son útiles para indicar el recuento o cantidad de elementos de cada categoría de una columna o campo en particular en su conjunto de datos".

# +
# Importar las librerias requeridas

from bokeh.plotting import figure, show, output_notebook


# Definir los puntos de datos para x y y

x = [6, 7, 8]
y = [2,4,6]

# Crear la variable plot

plot = figure()

# Código para crear la figura de barras

plot.vbar(x, top = y, color= 'brown', width=0.2)

# si se quieren barras horizontales se usa la función 
# hbar

output_notebook()
show(plot)

# -

# ## Gráficos de parches: 
# Los gráficos de parches (patch) se usan para indicar una región de puntos en un tono de color particular. Tales diagramas se pueden usar para distinguir diferentes grupos dentro del mismo conjunto de datos ".

# +
# Importar los paquetes necesarios

from bokeh.io import output_notebook, show
from bokeh.plotting import figure

# Crear las regiones para luego graficarlas

region_x = [[1,2,3], [2,3,4],[2,3,4,5]]
region_y = [[2,3,6], [3,5,3],[2,4,7,8]]

# Crear la variable plot

plot = figure()

#Crear la gráfica de parches o regiones 

plot.patches(region_x, region_y,  
             fill_color = ['green', 'yellow', 'black'],
            line_color = 'white')
output_notebook()
show(plot)
# -

# ## Gráficos de dispersión: 
# Los gráficos de dispersión se utilizan para visualizar la relación entre dos variables y para indicar la fuerza de la correlación entre ellas. "

# +
# Importar las librerías necesarias

from bokeh.io import output_notebook
from bokeh.plotting import figure, show 

# Crear los puntos de datos

x = [ 1,2,3,4,5]
y = [7,5,3,9,1]
z = [4,6,2,6]

# Crear la variable plot

plot = figure()

# Graficar los punto de datos por medio de círculos, 
# Triángulos, diamantes, etc.

plot.circle(x,y, color='green', size=30)
plot.diamond(x,z, color='magenta', size=40,alpha=0.6)
plot.triangle(y,z, color='brown',size=30)
output_notebook()
show(plot)

# plot.figure(x_axis_label = "Label name of x axis", \
# y_axis_label = "Label name of y axis")


# -

# ## Tipos de figuras (glifos) que soporta Bokeh
#
# - cross()
# - x()
# - diamond()
# - diamond_cross()
# - circle_x()
# - circle_cross()
# - triangle()
# - inverted_triangle()
# - square()
# - square_x()
# - square_cross()
# - asterisk()
#
#
#  

# ## Resumen
#
# Este capítulo le ha dado una introducción a lo que son los glifos y cómo puede usarlos para crear trazados fundamentales usando Bokeh. También vimos cómo personalizar aún más estas gráficas.
#
# Los glifos son los bloques de construcción fundamentales de Bokeh y son necesarios para crear tramas más complejas y estadísticamente significativas.
#
# Espero que hayan aprendido a crear cuatro Gráficas diferentes usando glifos. 
# - Los gráficos de líneas se usan comúnmente en análisis de series de tiempo.
# - Los gráficos de barras se usan comúnmente para comparar recuentos entre diferentes categorías.
# - los gráficos de parches se usan comúnmente para resaltar un área de puntos.
# - los gráficos de dispersión, se usan comúnmente para mapear una relación entre dos o más variables . 

# ## Resumen de Capitulo

# Este capítulo ha dado una introducción a lo que son los glifos y cómo puede usarlos para crear trazados fundamentales usando Bokeh. También vimos cómo personalizar aún más estas gráficas.
#
# Los glifos son los bloques de construcción fundamentales de Bokeh y son necesarios para crear gráficas más complejas y estadísticamente significativas.
#
# En este capítulo, aprendiste a crear cuatro tipos de gráficas, los gráficos de líneas se usan comúnmente en análisis de series de tiempo, los gráficos de barras se usan comúnmente para comparar recuentos entre diferentes categorías, los gráficos de parches se usan comúnmente para resaltar un área de puntos y los gráficos de dispersión, se usan comúnmente para mapear una relación entre dos o más variables . 



StarcoderdataJupyterScriptsDedupFiltered