El número de contagios de COVID-19 reportados en Ecuador.
Complejidad algorítmica
¿Ya tomaste el Curso de Pensamiento Computacional?
Introducción a la complejidad algorítmica
Abstracción
Notación asintótica
Clases de complejidad algorítmica
Algoritmos de búsqueda y ordenación
Búsqueda lineal
Búsqueda binaria
Ordenamiento de burbuja
Ordenamiento por inserción
Ordenamiento por mezcla
Ambientes virtuales
Ambientes virtuales
Graficado
¿Por qué graficar?
Graficado simple
Algoritmos de optimización
Introducción a la optimización
El problema del morral
Conclusiones
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
David Aroesti
Aportes 369
Preguntas 92
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 💪
Lo que se encuentra uno … https://towardsdatascience.com/cryptocurrency-analysis-with-python-macd-452ceb251d7c
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.
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.
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
+ 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/
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.
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
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)
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
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()
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)
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?