No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Graficado simple

13/16
Recursos

Aportes 369

Preguntas 92

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

El número de contagios de COVID-19 reportados en Ecuador.

Esta gráfica muestra a los Casos Diarios de Hospitalización por COVID en CDMX y Edo. Méx.

La información la saque de las bases de datos de la Ciudad de México:

Aquí está el código:

from bokeh.plotting import figure, output_file, show
import csv

def Leer_CSV(ruta):
    
    fecha = []
    hospitalizados_cdmx = []
    intubados_cdmx = []

    with open(ruta, newline='') as File:
        reader = csv.reader(File)
        data = list(reader)
        
        for i in range(len(data)):
            for j in range(len(data[i])):
                if j == 0:
                    fecha.append(data[i][j])
                elif j == 1:
                    hospitalizados_cdmx.append(int(data[i][j]))
                else:
                    intubados_cdmx.append(int(data[i][j]))
    #print('Fechas: \n', fecha)
    #print('Hospitalizados: \n', hospitalizados_cdmx)
    #print('Intubados: \n', intubados_cdmx)
    Crear_grafico(fecha, hospitalizados_cdmx, intubados_cdmx)

def Crear_grafico(fecha, lista1, lista2):
    output_file('Covid_cdmx.html')
    fig1 = figure(x_range = fecha, plot_height=800, plot_width = 1800, title="Casos de Hospitlalizacion por COVID en CDMX y Edo. Méx.")

    fig1.vbar(x=fecha, top=lista1, width=0.9)
    fig1.y_range.start = 0
    fig1.xaxis.major_label_orientation = 1.2

    show(fig1)

    
if __name__ == "__main__":
    Leer_CSV('personas-hospitalizadas-covid19.csv')

Y el resultado:

Hola, hice este grafico: http://docs.bokeh.org/en/latest/docs/gallery/hexbin.html usando el codigo que proveen. Para que corriera tuve que instalar pip pandas

Tomé la gráfica lineal para plasmar el clima de Medellín el día 20 de Marzo. El resultado fue el siguiente:

Si tienen el error de: from bokeh.plotting import figure, output_file, show
ModuleNotFoundError: No module named ‘bokeh’

Asegurense de estar en la ruta correcta:
en mi caso esta es mi ruta:
c:/Users/oscar/Documents/Cursos/pooYalgoritmosConPython/graficado/env/graficado_simple.py

Como se pueden dar cuenta tuve que meter mi archivo “graficado_simple.py” dentro de la carpeta “env”, no basto con solo estar dentro de la carpeta graficado. Espero les ayude el tip.

PD: Tambien instale el paquete wheel, sin embargo no se si era necesario
comando: pip install wheel
Como lo menciono el compañero Angel Antonio Gonzalez Garrido.

definitivamente me estanque aqui, intente usar bash, tampoco me deja. creo que deberia haber una explicacion acerca de los comandos y que teminal usa ya que no todos usamos mac o linux.

Para los que usen Ubuntu WSL les saldrá un error así:

Cuántos valores quieres graficar: 5
Valor y para 0: 6
Valor y para 1: 7
Valor y para 2: 90
Valor y para 3: 2
Valor y para 4: 1
Start : Este comando no se puede ejecutar debido al error: El sistema no puede  
encontrar el archivo especificado.
En línea: 1 Carácter: 1
+ Start "file:///mnt/d/Git_Repositories/POOAlgoritmosPython/graficado/g ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [Start-Process], InvalidOperationE  
   xception
    + FullyQualifiedErrorId : InvalidOperationException,Microsoft.PowerShell.Commands.  
   StartProcessCommand

Eso no quiere decir que no se ejecutó el programa, simplemente que Ubuntu WSL no sabe con que explorador abrir el .hmtl que se creó. Pueden abrir el html de manera manual buscándolo en el directorio donde está su script o configurando de alguna forma que Ubuntu WSL use algún explorador de su Windows 10.

El hecho del que profesor tuviera un sistema operativo diferente (Linux) al mio (Windows) hizo muchas mas difícil hacer el ejercicio de esta clase. Pero después de medio día, 5 tutoriales en Youtube y haber leído todos los comentario. Puedo decir que lo logre.

Por favor, un curso de bokeh!!! (con django o flask)

Traté de hacer un histograma con datos del COVID de los últimos 7 días, un tema complejo pero que genera muchos datos para practicar. Aprendí que el “eje y” hace notación científica por defecto y para quitarla se usa el código de la línea 15.

<from bokeh.io import output_file, show
from bokeh.plotting import figure
from bokeh.palettes import Spectral7
from bokeh.models import ColumnDataSource


output_file("1stgraph.html")

dates = ['12 May', '13 May', '14 May', '15 May', '16 May', '17 May', '18 May']
confirmed = [85631, 88412, 96443, 103677, 90688, 82488, 89148]

source = ColumnDataSource(data=dict(dates=dates, confirmed=confirmed, color=Spectral7))

p = figure(x_range=dates, y_range=(0, 150000), plot_height=500, title="Confirmados Globales por Día", toolbar_location=None, tools="")
p.left[0].formatter.use_scientific = False

p.vbar(x='dates', top='confirmed', width=0.8, color='color', legend_field="dates", source=source)

p.xgrid.grid_line_color = None
p.legend.orientation = "horizontal"
p.legend.location = "top_center"
p.y_range.start = 0

show(p)>

Si tienes el error de "ModuleNotFoundError: No module named ‘bokeh’ ", tranquilo es fácil de lidiar con el. 🕐
En vsCode deberás especificar manualmente la ruta del interprete y no te preocupes es muy fácil.
Para hacerlo, abre la paleta de comandos con ( Ctrl + Shift + P ) y escribe Python: Select Interpreter

Luego de ingresas en Python: Select Interpreter y haces clic en Enter interpreter path…

Ahora haces clic en Find…

Esto te llevará a la carpeta actual de tu proyecto, tranquilo solo sigue esta ruta “.venv / Scripts / python.exe” es muy importante que hagas clic en “python.exe”. Listo lo hiciste muy bien, ahora ya puedes seguir aprendiendo 💪

Para poder Graficar en Windows 10 con el Visual studio Code, deben hacerlo asi:

CTRL+SHIFT+P
Python: Select Interpreter
buscan la carpeta donde esté el env de Python

from bokeh.io import output_file, show
from bokeh.models import ColumnDataSource
from bokeh.palettes import Spectral6
from bokeh.plotting import figure

if __name__ == '__main__':
    output_file('codiv_bar.html')
    zonas = ['Bogotá D.C.', 'Antioquia', 'Santander', 'Cundinamarca', 'Magdalena', 'Nariño']
    infectados = [1883, 426, 37, 182, 141, 62]
    
    source = ColumnDataSource(data=dict(zonas=zonas, infectados=infectados, color=Spectral6))
    
    fig = figure(x_range=zonas, y_range=(100,2500), plot_height=350, title='Infectados Covid Colombia', toolbar_location=None, tools="")
    
    fig.vbar(x='zonas', top='infectados', width=0.9, color='color', legend_field='zonas', source=source)

    fig.xgrid.grid_line_color = None
    fig.legend.orientation = "horizontal"
    fig.legend.location = "top_center"
    
    show(fig)

Una regla general de las ciencias computacionales es que no porque se pueda realizar algo significa que esa sea la mejor forma de hacerlo. En el caso de las graficas uno debe de elegir la grafica que sea más adecuada según sea el propósito.

¿Fui el único en sentirse emocionado al ver el gráfico? XD
Solo pude pensar, un pequeño paso en python, un gran paso hacia el Data Science…

https://github.com/karlbehrensg/poo-y-algoritmos-python
Graficado simple

La librería Bokeh permite construir gráficas complejas de manera rápida y con comandos simples, también nos permite exportar a varios formatos como html, notebooks, imágenes, etc. Bokeh se puede utilizar en el servidor con Flask y Django.

from bokeh.plotting import figure, output_file, show

if __name__ == '__main__':
    output_file('graficado_simple.html')
    fig = figure()
    
    total_vals = int(input('Cuantos valores quieres graficar?'))
    x_vals = list(range(total_vals))
    y_vals = []

    for x in x_vals:
        val = int(input(f'Valor y para {x}'))
        y_vals.append(val)

    fig.line(x_vals, y_vals, line_width=2)
    show(fig)

Otra librería muy buena para graficos se llama altair, se puede encontrar en: https://altair-viz.github.io/

Soy ingeniero de petróleos y con Platzi he aprendido poco a poco varias cositas de programación que me han sido muy útiles.

Comparto la gráfica que hice para aplicar lo aprendido; y bueno, tuve que buscar un poquito para aprender a mostrar el segundo eje vertical:

Gracias a David y a la comunidad por enriquecer las clases 😃

from bokeh.plotting import figure, output_file, show
from bokeh.models import LinearAxis, Range1d

sw = [0.101,
0.164,
0.199941176,
0.235882353,
0.271823529,
0.307764706,
0.343705882,
0.379647059,
0.415588235,
0.451529412,
0.487470588,
0.523411765,
0.559352941,
0.595294118,
0.631235294,
0.667176471,
0.703117647,
0.739058824,
0.775,
0.775]

krw = [0,
0,
0.000865052,
0.003460208,
0.007785467,
0.01384083,
0.021626298,
0.031141869,
0.042387543,
0.055363322,
0.070069204,
0.08650519,
0.10467128,
0.124567474,
0.146193772,
0.169550173,
0.194636678,
0.221453287,
0.25,
0.25]

kro = [
1,
1,
0.885813149,
0.778546713,
0.678200692,
0.584775087,
0.498269896,
0.418685121,
0.346020761,
0.280276817,
0.221453287,
0.169550173,
0.124567474,
0.08650519,
0.055363322,
0.031141869,
0.01384083,
0.003460208,
0,
0]

output_file('Curvas de Permeabilidad Relativa.html')
p = figure(y_axis_label='Kro')

p.line(sw, krw, color='blue', line_width=2, legend_label='Krw')
p.line(sw, kro, color='green', line_width=2, legend_label='Kro')

p.extra_y_ranges = {'Krw':Range1d(start=0, end=1)}
p.add_layout(LinearAxis(y_range_name = 'Krw', axis_label='Krw'), 'right')

p.xaxis.axis_label = 'Sw'

show(p)


Una pregunta, a la hora de subir mis proyectos a un repositorio, es recomendable subir la carpeta env, o es mejor agregarla al .gitignore y especificar en el repositorio los paquetes y las versiones que se usan.

Graficando la ecuación polinomial 3X^5 - 25X^3 + 60X + 3

Distribución de los restaurantes Chiplote en USA

El dataset lo obtuve de aquí
Y el código fue el sgte, basándome en el ejemplo de la documentación aquí:

import numpy as np

from bokeh.io import output_file, show
from bokeh.models import HoverTool
from bokeh.plotting import figure

if __name__ == '__main__':
    dataFile = open('data/data.csv', 'r')
    lines = dataFile.readlines()
    x_values = []
    y_values = []
    for line in lines:
        parts = line.split(",")
        x_values.append(float(parts[len(parts) - 1]))
        y_values.append(float(parts[len(parts) - 2]))

    x = np.array(x_values)
    y = np.array(y_values)

    p = figure(title="Distribución restaurantes Chiplote en USA", match_aspect=True,
            tools="wheel_zoom,reset", background_fill_color='#440154')
    p.grid.visible = False

    r, bins = p.hexbin(x, y, size=3, hover_color="pink", hover_alpha=0.8)

    p.circle(x, y, color="white", size=1)

    p.add_tools(HoverTool(
        tooltips=[("count", "@c"), ("(q,r)", "(@q, @r)")],
        mode="mouse", point_policy="follow_mouse", renderers=[r]
    ))

    output_file("hexbin.html")
    show(p)

Usando la documentación de Bokeh hice unas gráficas sencillas como las que muestro.
Documentación de Bokeh


Una de mis funciones favoritas… (dejo el código abajo de la imagen)

Estoy usando numpy, si quieres correrlo, recuerda instalarlo en tu entorno virtual

from bokeh.plotting import figure, output_file, show
import numpy as np
import math


def f(x):
    if x == 0:
        return 0
    return x * math.sin(1/x)


# Calculating
r = 1
x_values = np.linspace(-r, r, 10000)
y_values = [f(x) for x in x_values]

# Showing
output_file('out.html')
fig = figure()
fig.line(x_values, y_values)
show(fig)

🤖🤖🤖
La librería Bokeh permite construir gráficas complejas de manera rápida y con comandos simples, también nos permite exportar a varios formatos como html, notebooks, imágenes, etc. Bokeh se puede utilizar en el servidor con Flask y Django.

Código para ejecutarse en Deepnote:

from bokeh.plotting import figure, output_file, save
from IPython.display import IFrame
from IPython.core.display import display, HTML
import tempfile

def bokeh_deepnote_show(plot):
    tmp_output_filename = tempfile.NamedTemporaryFile(suffix='.html').name
    output_file(tmp_output_filename)
    save(plot)

    f = open(tmp_output_filename, "r")
    display(HTML(f.read()))


if __name__ == '__main__':
    output_file('graficado_simple.html')
    fig = figure()
    
    total_vals = int(input('Cuantos valores quieres graficar?'))
    x_vals = list(range(total_vals))
    y_vals = []

    for x in x_vals:
        val = int(input(f'Valor y para {x}'))
        y_vals.append(val)

    p = figure(title="Bokeh test", plot_width=300, plot_height=300)
    p.line(x_vals, y_vals, line_width=2)

    bokeh_deepnote_show(p)

Hola a todos, les comparto mi grafica, es el historico semanal de la cotización de bitcoin de yahoo finance. lo pueden obtener descargando yfinance o yahoo-finance en sus terminales. Gracias!

Para graficar les recomiendo que instalen seaborn. Es una biblioteca increíble para hacer una variada cantidad de gráficos.

from bokeh.io import output_file, show
from bokeh.models import ColumnDataSource
from bokeh.palettes import Spectral6
from bokeh.plotting import figure

output_file("delay_cyberpunk.html")

fecha = ['4 de Abril 2020', '17 de Septiembre 2020', '19 de Noviembre 2020', '10 de Diciembre 2020']
counts = list(range(0,5))

source = ColumnDataSource(data=dict(fecha=fecha, counts=counts, color=Spectral6))

p = figure(x_range=fecha, y_range=(0,5), plot_height=350, title="Cyberpunk 2077 Delays",
           toolbar_location=None, tools="")

p.vbar(x='fecha', top='counts', width=0.9, color='color', legend_field="fecha", source=source)

p.xgrid.grid_line_color = None
p.legend.orientation = "horizontal"
p.legend.location = "top_center"

show(p)

Hola, buenas a todos compañeros

Queria comentarles que si ha alguno en windows les ha salido el error del import from bokeh

Primero deben correr el activate.bat dentro de la carpeta Scripts asi en la consola saldrìa primero el (env) o el nombre que le hayan colocado al ambiente

Segundo, si están usando python3.9, en algunas ocasiones aparecera otro error algo menos entendible, esto se debe al numpy que tienen instalado, probablemente debe ser el 1.19.4

para solucionarlo se debe hacer downgrade a la 1.19.3

pip install numpy==1.19.3

y ya deberia funcionar

Grafiqué una lineal, una cuadrática y una racional


Hice los graficos de sin(x) y cos(x) guiándome de la página oficial de bokeh. https://docs.bokeh.org/en/latest/docs/gallery/legend.html

import numpy as np    #Importa funciones numéricas
from bokeh.layouts import gridplot   #Importa la cuadrícula o grilla en la gráfica
from bokeh.plotting import figure, output_file, show   

x = np.linspace(0, 4*np.pi, 100)    #Espacio del eje X de 0 a 4*pi, cantidad de puntos que se quieren graficar
y = np.sin(x)   #Función a graficar en Y


p1 = figure(title="Plot 1")
p1.line(x, y, line_width=3, color="green", legend_label="sin(x)")

p2 = figure(title="Plot 2")
p2.circle(x, 1 - y, color="blue")

output_file("legend.html", title="legend.py example")

show(gridplot([p1, p2], ncols=2, plot_width=400, plot_height=400))  # open a browser

![](

Aquí les dejo un error que me daba al intentar correr el código. Y tras horas de buscar, encontré la solución. Se las dejo aquí(pip install numpy==1.19.3) para que no tengan que pasar por lo mismo que yo 😃
Esto lo tienen que descargar como si fuera una librería mas

Bokeh es bastante extenso. Quise hacer esta gráfica de llamadas recibidas por hora en un call center leyendo de un CSV. Como pueden ver tuve que realizar la conversión del formato de fecha.

import pandas
from bokeh.io import output_file
from bokeh.plotting import figure, show
from bokeh.models import ColumnDataSource
import datetime



data_frame = pandas.read_csv('Libro2.csv',
                            index_col="Date & Time",
                            parse_dates=[0],
                            date_parser=lambda x: pandas.datetime.strptime(x, '%d/%m/%Y %H:%M'))
print(data_frame)

output_file('filename.html')

column_data_source = ColumnDataSource(data_frame)

fig = figure(x_axis_type = 'datetime',
            x_axis_label = 'Hora',
            x_minor_ticks=100,
            y_axis_label = 'Número de Llamadas',
            title='Llamadas por hora',
            toolbar_location=None)

fig.step('Date & Time', 'Value', source=column_data_source)

show(fig)

Mi primer gráfico en Python

El código

Gráfica simple
Código

Ejecución

Gráfica

Otra forma de graficar
NumPy: es una extensión de Python, que le agrega mayor soporte para vectores y matrices, constituyendo una biblioteca de funciones matemáticas de alto nivel para operar con esos vectores o matrices.

Código

Quizá una vuena ventaja, aunque fomenta un poco la pereza, es que cada gráfico tiene su código, por lo que se deben modificar unicamente los origenes de los datos; para el caso, un diagrama de dispersión:

import numpy as np

from bokeh.plotting import figure, output_file, show

N = 4000
x = np.random.random(size=N) * 100
y = np.random.random(size=N) * 100
radii = np.random.random(size=N) * 1.5
colors = [
    "#%02x%02x%02x" % (int(r), int(g), 150) for r, g in zip(50+2*x, 30+2*y)
]

TOOLS="hover,crosshair,pan,wheel_zoom,zoom_in,zoom_out,box_zoom,undo,redo,reset,tap,save,box_select,poly_select,lasso_select,"

p = figure(tools=TOOLS)

p.scatter(x, y, radius=radii,
          fill_color=colors, fill_alpha=0.6,
          line_color=None)

output_file("color_scatter.html", title="color_scatter.py example")

show(p)  # open a browser

le di una implementan diferente al ejemplo de la clase para graficar la funcion seño con diferentes niveles de exactitud dependiendo del valor ingresado

from bokeh.plotting import figure, output_file, show
import math
if __name__ == '__main__':
    output_file('graficado_simple.html')
    fig = figure()
    
    total_vals = int(input('Cuantos valores quieres graficar? '))
    x_vals = list(range(1,total_vals))
    y_vals = []
    valorBase = 360/total_vals
    avence = 0
    for x in x_vals:
        print(valorBase)
        val = math.sin(math.radians(avence))
        avence += valorBase
        y_vals.append(val)

    fig.line(x_vals, y_vals, line_width=2)
    show(fig)

si alguien sabe como solucionar el error de bokeh en visual studio me pueden ayudar por favor xd

Hice un grafico con la información del robo de celulares de la ciudad de Bogotá que es donde vivo. Interesante este módulo de Python. Lamentable situación de seguridad en la ciudad.

Para los que usan WSL

Al correr tu archivo, a pesar que te sale este error, se crea la imagen en un archivo .html ; desde la terminal, ingresa a la carpeta graficando y desde alli puedes usar el siguiente comando:

wslview nombre_imagen.html

Te abrira en el navegador una pestaña con la grafica

Hice esta grafica de los lanzamientos de spaceX desde 2002 hasta 2016. los datos los tome de aca. https://www.kaggle.com/datasets/spacex/spacex-missions

lo que hice fue graficar el problema de Monty Hall.
para quien no lo conozca esta en wikipedia en la parte de premisa.
https://es.wikipedia.org/wiki/Problema_de_Monty_Hall
mi código

import random
from bokeh.plotting import figure, output_file, show


def remover_puertas(puertas, eleccion, premio):
    puertas.remove(eleccion)
    for puerta in puertas:
        if puerta != premio:
            puertas.remove(puerta)
            break
    return puertas[0]


def probabilidad(forma):
    puertas = ["puerta 1", "puerta 2", "puerta 3"]
    premio = random.choice(puertas)
    eleccion = random.choice(puertas)
    if forma == 1:
        return eleccion
    else:
        eleccion_final = remover_puertas(puertas, eleccion, premio)
        return premio == eleccion_final


def estadisticas(escala, forma):
    # aciertos = 0
    # for i in range(escala):
    #     if probabilidad(forma):
    #         aciertos += 1
    # return aciertos
    aciertos = [i for i in range(escala) if probabilidad(forma)]
    return len(aciertos)


def run():
    veces = int(input("¿cuantas veces lo quieres ejecutar?: "))
    escala = int(input("¿A que escala queres los resultados?: "))

    output_file("problema_de_puertas.html")
    fig = figure()
    x_vals = list(range(veces))

    aciertos = [estadisticas(escala, 1) for i in range(veces)]
    fig.line(x_vals, aciertos, line_width=1)

    aciertos = [estadisticas(escala, 2) for i in range(veces)]
    fig.line(x_vals, aciertos, line_width=2)

    show(fig)


if __name__ == "__main__":
    run()
from bokeh.plotting import figure, output_file, show

if __name__ == '__main__':
    output_file('graficado_simple.html')
    fig = figure()
    
    total_vals = int(input('Cuantos valores quieres graficar?'))
    x_vals = list(range(total_vals))
    y_vals = []

    for x in x_vals:
        val = int(input(f'Valor y para {x}'))
        y_vals.append(val)

    fig.line(x_vals, y_vals, line_width=2)
    show(fig)

Tube unas difficultades con los ambientes de virtuales porque tenia instalado conda y como que eso estaba causando problemas, pero termine trabajando sobre conda e instalando boken en un ambiente virtual que cree alli.

Y son minutos estudiados y X el dia de la semana

Les comparto el ejercicio que hice. Lo hice en base a los datos del programa de incentivos para la instalación de energía solar en la ciudad de Los Angeles.

El eje X representa el tiempo y el eje Y la capacidad instalada de medición de energía neta (NEM) (kilovatios).
EL csv para hacer el ejercicio lo conseguí aquí https://data.lacity.org/City-Infrastructure-Service-Requests/LADWP-Solar-Incentive-Program/2yrw-q8tw

Y este es el código:

import csv
from bokeh.plotting import figure, output_file, show


with open('LADWP_Solar_Incentive_Program.csv') as csv_file:
    csv_reader = csv.reader(csv_file)
    data = list(csv_reader)

    x_values = []
    y_values = []
    temp_row = []  # Almacena lso valores de la primera columna del csv

    for i in data:
        temp_row.append(i[0])
        y_values.append(i[1])

    x_values = list(range(len(temp_row)))  # Crea una lista del tamaño de la primera columna del csv


if __name__ == '__main__':
    output_file('solar_energy_LA_graph.html')
    graph = figure()

    graph.line(x_values, y_values, line_width=2)
    show(graph)

    for x in x_vals:
        val = x**2
        y_vals.append(val)

😛 jajaj adivinen la forma

Gráfica del coseno 😅. Increíble la sencillez de la librería 😱

from bokeh.plotting import figure, output_file, show
import math

if __name__ == '__main__':
    output_file('graficado_simple.html')
    fig = figure()

    x_vals = []
    y_vals = []

    for i in range(400):
        x_vals.append(i/10)

    for x in x_vals:
        print(x)
        y_vals.append(math.cos(x))
        print(y_vals)

    fig.line(x_vals, y_vals, line_width=2)
    show(fig)
from bokeh.plotting import figure, output_file, show
import csv


def Leer_csv(ruta):

    hora = []
    radiacion = []

    with open(ruta) as File:
        lector = csv.reader(File)
        data = list(lector)

    for i in range(len(data)-1):
        hora.append(int(data[i + 1][0]))

    for i in range(len(data)-1):
        radiacion.append(float(data[i + 1][1]))

    return (hora, radiacion)


if __name__ == '__main__':

    datos = Leer_csv('radiacion_medellin.csv')
    x = datos[0]
    y = datos[1]

    output_file('graficado_simple.html')
    fig = figure(title="Radiación Solar horaria promedio en Medellín en Wh/m2 ",
                 toolbar_location=None, tools="")

    fig.vbar(x=x, top=y, width=0.9)
    show(fig)

Cuenado no les funcione el comando para ingresas al entorno virtual pueden probar con estos sigueintes 3 comandos alguno tiene que funcionar.

  • call env/Scripts/activate
  • source env/Scripts/activate
  • env/Scripts/activate

Temperatura para el 21/10/2020 para Cartagena (colombia)

Increible libreria, me encanto.

Sería bueno cursos completos que profundicen sobre diferentes categorias de paquetes de Python. Como por ejemplo paquetes para graficar y como utilizarlos.

Les comparto un gráfico dinámico que genere con matplotlib, las barras cambian de color dependiendo donde le demos click a la imagen.

Hola!
Es posible importar datos de por ejemplo de excel y graficarlos? y que se requiere? Gracias!

mis ingresos durante el último año 😦 .
La economía ha caido 😦

![](

En mi caso todo me funciono, me costo un poco por lo temas de instalacion en ubuntu 18.4 en Window, que el sistema de comentarios me brindo la respuesta a que me hacia falta (instalar el python3.7 e instalar el bokeh).
El programa me corre, sin embargo no se despliega la ventana en automatico sino mas bien tengo que irme a la carpeta y abrir la ventana manualmente para ver la grafica.
El problema que me arroja es:
Start : This command cannot be run due to the error: The system cannot find the file specified.
At line:1 char:1

  • Start "file:///mnt/c/users/Nombre de usuario /Programacion/Python POO …
  •   + CategoryInfo          : InvalidOperation: (:) [Start-Process], InvalidOperationException
      + FullyQualifiedErrorId : InvalidOperationException,Microsoft.PowerShell.Commands.StartProcessCommand

Si a alguien le sale el error Too many positional aruments for method call…

Lo que se debe hacer es agregar el nombre de los 2 primeros argumentos:

fig.line(x = x_vals, y = y_vals, line_width = 2)

Y listo, solucionado.

from math import pi

import pandas as pd

import bokeh.sampledata
bokeh.sampledata.download()
from bokeh.plotting import figure, output_file, show
from bokeh.sampledata.stocks import MSFT

df = pd.DataFrame(MSFT)[:50]
df["date"] = pd.to_datetime(df["date"])

inc = df.close > df.open
dec = df.open > df.close
w = 12*60*60*1000 # half day in ms

TOOLS = "pan,wheel_zoom,box_zoom,reset,save"

p = figure(x_axis_type="datetime", tools=TOOLS, plot_width=1000, title = "MSFT Candlestick")
p.xaxis.major_label_orientation = pi/4
p.grid.grid_line_alpha=0.3

p.segment(df.date, df.high, df.date, df.low, color="black")
p.vbar(df.date[inc], w, df.open[inc], df.close[inc], fill_color="#D5E1DD", line_color="black")
p.vbar(df.date[dec], w, df.open[dec], df.close[dec], fill_color="#F2583E", line_color="black")

output_file("candlestick.html", title="candlestick.py example")

show(p)  # open a browser

Tuve muchos problemas con esta clase pero luego de solucionarlos todos y ejecutar el código pasa esto:

Start : Este comando no se puede ejecutar debido al error: El sistema no puede encontrar el archivo especificado.
En línea: 1 Carácter: 1
+ Start "file:///mnt/c/Users/mique_5vmfrge/Documents/Code folder/POO y  ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [Start-Process], InvalidOperationException
    + FullyQualifiedErrorId : InvalidOperationException,Microsoft.PowerShell.Commands.StartProcessCommand

Esta es una forma en Windows para activar el ambiente virtual y ejecutar el programa usando Cmder.

Tal vez sea de ayuda para alguien.
Actualmente uso Windows 10, sin embargo, no cuento con la extensión WSL (Windows Subsystem for Linux) y no pude instalarla por mas que intenté, la manera que encontré para poder seguir avanzando con el curso fue usando el cmd o Simbolo de Sistema, el cual lo empleo como terminal para ejecutar el código.
Este video me ayudó a comprender y crear los ambientes virtuales: https://www.youtube.com/watch?v=zH28dM-pjlw&t=605shttps://www.youtube.com/watch?v=zH28dM-pjlw&t=605s
Uso el Spyder de Anaconda y también el Visual Studio Code (VSC).
Para poder hacer la gráfica hice el código en VSC, lo guardé, luego inicié mi ambiente virtual en el cmd y ejecute el archivo guardado como grafico_simple.py.
Para proyectar la imagen te pide elegir un programa, coloca Google Chrome y obtendras la gráfica.
Posterior a eso, con solo correr el programa en Spyder tambien te figura la gráfica en una pestaña de Google Chrome.

Psdt: Por motivos “x” no puedo cambiar el sistema operativo de este equipo, sin embargo, les recomiendo trabajar en Linux para un mejor desarrollo de los cursos.

esta clase estuvo muy buena!!

Aquí la documentación: https://docs.bokeh.org/en/latest/

  • Se ve muy interesante, ademas podemos usarla en el servidor con Flask y Django.

Según lo que me paso, la terminal en Visual Studio no me muestra si se activo el ambiente virtual, al realizarlos directamente en el cmd. Fue más sencillo.

En mi caso, tuve que hacer unas instalaciones adicionales para poder visualizar las gráficas: ```txt sudo apt-get update sudo apt-get install firefox BROWSER=firefox python3 6_graphs.py ```
yo hice una función cuadrática: ![]()![](https://static.platzi.com/media/user_upload/publish-749d62e1-b0b4-4145-8dd0-cff2383741b8.jpg) no más, en lugar de el for que añade los datos del usuario, hice un list comprenhension: `y_vals = [y**2 for y in x_vals]`
```python from bokeh.models import ColumnDataSource from bokeh.palettes import Bright6 from bokeh.plotting import figure, show from bokeh.transform import factor_cmap if __name__ == "__main__": total_values = int(input("Cuantas barras vas a graficar: ")) x_values = list(range(total_values)) y_values = [] for i in x_values: value = int(input(f"Cual es el valor de la barra numero {i}: ")) y_values.append(value) source = ColumnDataSource(data = dict(x_values = x_values, y_values = y_values)) fig = figure(x_range = [str(x) for x in x_values], height = 350, toolbar_location = None, title = "Prueba") fig.vbar(x = 'x_values', top = 'y_values', width = 1, source = source, legend_field = "x_values", line_color = 'white', fill_color = factor_cmap('x_values', palette = Bright6, factors = [str(x) for x in x_values])) fig.xgrid.grid_line_color = None fig.y_range.start = 0 fig.y_range.end = max(y_values) + 1 fig.legend.orientation = "horizontal" fig.legend.location = "top_center" show(fig) ```
Hola, he estado intentando de diferentes maneras que se me abra el grafico en html y no he podido. He probado desde VS y no puedo entrar al venv. Lo hago desde la Terminal y me permite entrar, cargo el programa pero cuando entro los datos y doy enter no me lo abre. No sé que más puedo hacer. Gracias
Como pequeño aporte mencionar que los valores de 'Y' los podemos obtener también con list comprehension  ```python total_valores = int(input('Cuantos valores desea graficar: ')) x_val = list(range(total_valores)) y_val = [int(input(f'valor de y para {x}: ')) for x in x_val] ```

Codigo medio explicado

from bokeh.plotting import figure, output_file, show

"""figure es la ventana donde nosotros vamos a graficar
output_file nos va a permitir determinar cual es le noombre del archivo que nosotros vamos a gernerar como output, 
(en este caso lo haremos en un HTML)
La función show es un servidor que se enciende y muestra la función HTML en nuestro browser"""

if __name__ == '__main__':
    output_file('graficado_simple.html')
    fig = figure()
    #fig es la variable y figure() es la función que nos da la figura
    #Ustedes pueden utilizar la función type(fig) para ver que hay adretro de la figura y help(fig) para ver los metodos de la figura.
    
    total_vals = int(input('Cuantos valores quieres graficar?'))
    x_vals = list(range(total_vals))
    y_vals = []

    for x in x_vals:
        val = int(input(f'Valor y para {x}'))
        y_vals.append(val)

    fig.line(x_vals, y_vals, line_width=2)
    #Es necesario crear una linea y darle los valores de x y y
    show(fig)

Hubiera sido bueno que graficara los algoritmos anteriores para comprarlos, pero bueno sera investigar aparte.

Los archivos html de los graficos los puvdes guardar con save, en vez, de sho. El rsultado es el mismo, nadamas que guardamos los archivos en nuestro disco duro



Código para obtener una parábola con un dominio deseado.

from bokeh.plotting import figure, output_file, show

if __name__ == '__main__':
    output_file('graficado_simple.html')#Utilizamos la funcion ouput_file para darle el nombre al archivo sobre el que graficaremos
    fig = figure()# Se genera la primera figura. Aquíes donde pondremos nuestros graficos
    
    total_vals = int(input('Cuantos valores quieres graficar?'))
    x_vals = list(range(total_vals))
    y_vals = []

    for x in x_vals:
        val = ((x))**2
        y_vals.append(val)

    fig.line(x_vals, y_vals, line_width=2)
    show(fig)

from bokeh.plotting import figure, output_file, show

if name == ‘main’:
output_file(‘poblacion_colombia.html’)
fig = figure(title=“Crecimiento de población de Colombia en los últimos 10 años”, x_axis_label=‘Año’, y_axis_label=‘Población’)

total_years = 10
x_vals = list(range(total_years))
y_vals = []

for x in x_vals:
    val = int(input(f'Población para el año {x+2013}: '))
    y_vals.append(val)

fig.line(x_vals, y_vals, line_width=2)
show(fig)

Esto es Bokeh!

Mis gastos de un mes

Eje y: Velocidad promedio(m/s) del aire a una altura de 30m.
Eje x: Días

Realicé una gráfica con los datos históricos del precio de Bitcoin en USD, correspondientes a todo el año 2022.
El dataset lo obtuve de la siguiente URL:
https://mx.investing.com/crypto/bitcoin/btc-usd-historical-data

A continuación, adjunto mi código para quienes gusten examinarlo:

import csv
from bokeh.plotting import figure, output_file, show

if __name__ == '__main__':
	output_file('simple_graphic.html')
	fig = figure()

	with open("data/BTC_USD.csv") as file:
		data = csv.reader(file)
		next(data, None)
		average_prices = []
		maximum = 3
		minimum = 4
		for row in data:
			max_price = row[maximum][0:len(row[maximum])-2].replace(',','.')
			min_price = row[minimum][0:len(row[minimum])-2].replace(',','.')
			average_prices.append( (float(max_price) + float(min_price)) / 2 )

	dates = list(range(len(average_prices)))
	fig.line(dates, average_prices, line_width=2)
	show(fig)

Y finalmente, el gráfico obtenido:

Lo hice con mis promedio de la Universidad y me pegué severa decepcionada, un sube y baja horrible jajaja

Yo quise hacer algo algo divertivo es dibujar lineas aleatorias, solamente pedi cuantos puntos queria y se llenaba con valores radom, y se genara un grafico divertio 😄

import random
from turtle import color
from bokeh.plotting import figure, output_file, show

if __name__ == '__main__':
	output_file('graficado_simple.html')
	fig =figure()
	
	total_vals = int(input('Cuantos puntos quieres graficar?: '))
	y_vals = [random.randint(0, 100) for i in range(total_vals)]
	x_vals= [random.randint(0, 100) for i in range(total_vals)
	
	#Solo para ver los puntos de coordenadas
	print(x_vals)
	print(y_vals)
	
	fig.line(x_vals, y_vals, line_width=2, color='black')
	show(fig)

Hola grafique el precio de una variedad de cebolla en los dos mercados principales de mi pais que son referencia de precios.

La cantidad que horas que paso en el telefono se puede ver como los fines de semana tiende a subir la cantidad de horas

Instalé el Ambiente Virtual para Windows 10, pero no podía entrar en el él. El motivo era que estaba deshabilitado el Scripts.
Anexo el siguiente llink, donde encuentran orientación para aquellos a los cuales se les presente el mismo inconveniente.
https://www.youtube.com/watch?v=hMtmLTsxdAM&t=223s

Esta grafica te da el resultado de los graduados que tenemos en la congregación, del programa CRECE

from bokeh.plotting import figure, output_file, show

if __name__ == "__main__":
    output_file("Graficado_simple.html")
    
    mes = ["Ene22", "Feb22", "Mar22", "Abr22", "May22", "Jun22", "Jul22", "Ago22", "Sep22"]

    fig = figure(x_range = mes, title = "Estadisticas CRECE")

    total_vals = int(input("¿Cuantos valores quieres graficar?: "))
    x_vals = list(range(total_vals))
    y_vals = []

    for x in x_vals:
        val = int(input(f"Valor para {x}: "))
        y_vals.append(val)

    fig.xaxis.axis_label = "Graduados"
    fig.line(x_vals, y_vals, line_width=2)
    show(fig)

)

Despues de tanto intentar porfin pude graficar!!

Para el que tenga duda como se escriben las librerias que dice el profesor:
0:24 MATPLOTLIB
0:25 pylab

Alguien save que esta pasando no se porque no me carga, el codigo ya estoy intentando de todas las maneras y no vale ya esta activado y descargado el ambiente pero sencillamente no funciona
![](

y voila! reto completado ig, aunque seguire viendo como escribir mas texto en el eje x ya que, como se puede ver, me toco acortar lo nombres xD y los datos los saque de https//:www.animenewsnetwork.com

bokeh es excelente para graficar y exportar las imagenes

Grafica de barras

  • EL código que está abajo crea una gráfica de barras, con un título para la gráfica y legendas para el eje x y el eje y.

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import matplotlib.pyplot as plt
 
## Declaramos valores para el eje x
eje_x = ['Python', 'R', 'Node.js', 'PHP']
 
## Declaramos valores para el eje y
eje_y = [50,20,35,47]
 
## Creamos Gráfica
plt.bar(eje_x, eje_y)
 
## Legenda en el eje y
plt.ylabel('Cantidad de usuarios')
 
## Legenda en el eje x
plt.xlabel('Lenguajes de programación')
 
## Título de Gráfica
plt.title('Usuarios de lenguajes de programación')
 
## Mostramos Gráfica
plt.show()
  • El resultado de este código es la siguiente gráfica

Realicé un gráfico para los accidentes de tráfico que suceden en mi país (Guatemala) Tomé solo los datos para el país entero, aunque me hubiera encantado hacerlo para cada departamento, pero me limitan mis actuales conocimientos

from bokeh.plotting import figure, output_file, show
from numpy import genfromtxt
import numpy as np


def acci_por_dept():
    años = []
    guate = []
    for i in range(len(data)):
        años = np.append(años,data[i][0])
    #print(lista)
    for i in range(len(años)):
        guate = np.append(guate,data[i][1])
    #print(guate)
    return años, guate

def graficar(yvalues, xvalues):
    output_file = ('AccidentesGuatemala')
    fig = figure()
    fig.line(xvalues, yvalues, line_width = 2)
    
    show(fig)
    return  


if __name__ == "__main__":
    data = genfromtxt('AccidentesPorDepartamento.csv', delimiter=',', skip_header=1)
    #print(data)
    y_vals = acci_por_dept()[1]
    x_vals = acci_por_dept()[0]
    graficar(y_vals, x_vals)

La base de Datos la obtuve de INE Guatemala


Hice un grafico con los números factoriales del 1 al 10

logrè graficar un corazòn les dejo
x = [8, 1, 1, 3, 6, 8, 10, 13, 15, 15, 8]
y = [1, 8, 11, 13, 13, 11, 13, 13, 11, 8, 1]

Esta clase estuvo bastante interesante, toca indagar mas en la librería a ver que podemos implementar

este es mi aporte de una grafica de una funcion exponencial

from bokeh.plotting import figure, output_file, show

if __name__ == "__main__":
    output_file("graficado_simple.html")
    fig = figure()
    
    total_vals= int(input("cuantos valores quieres graficar: "))
    x_vals = list(range(total_vals))
    y_vals = []

    for x in x_vals:
        val = x
        val = val**2
        y_vals.append(val)

    fig.line(x_vals, y_vals, line_width=2, line_color="blue", line_alpha=0.9)
    show(fig)

from bokeh.plotting import figure, output_file, show
import random

if __name__ == '__main__':
    output_file('graficado_simple.html')
    fig = figure()
 
   
    total_vals = int(input('Cuantos valores quieres graficar?'))
    
    x_vals = list(range(total_vals))
    y_vals = [random.randint(0, 100) for i in range(total_vals)]

    fig.line(x_vals, y_vals, line_width=2)
    show(fig)
import math

#crear ambiente virtual e instalar 'pip install bokeh'
from bokeh.plotting import figure, output_file, show

if __name__ == '__main__':
    output_file('graficado_simple.html')
    fig = figure()
    print('Entre que valores quieres graficar')
    val_start = int(input('Valor inicial: '))
    val_end = int(input('Valor final: '))
    val_points = (int(input('Cuantos puntos deseas: ')))
    x_vals = []
    y_vals = []
    valor = val_start
    space =(val_end-val_start)/val_points
    
    while valor <= val_end:
        val = math.sin(valor)
        x_vals.append(valor)
        y_vals.append(val)
        valor = valor + space
        

    fig.line(x_vals, y_vals, line_width=2)
    
    show(fig)