La visualización de datos juega un papel fundamental en la interpretación de grandes volúmenes de información. Herramientas como Bokeh han surgido como soluciones populares para crear paneles e informes interactivos. Cada herramienta aporta ventajas únicas según la complejidad de su proyecto y su lenguaje de programación preferido. En este artículo, profundizaremos en cada herramienta y luego nos centraremos en Bokeh, incluido un ejemplo práctico y su implementación en la nube.
De modo que...
¿Qué es el bokeh?
Bokeh es una biblioteca de visualización interactiva dirigida a navegadores web modernos para presentaciones. Ofrece gráficos elegantes y concisos, lo que permite a los desarrolladores crear paneles con interactividad avanzada. Bokeh es particularmente adecuado para científicos y desarrolladores de datos que usan Python, ya que ofrece interfaces de alto nivel y control granular sobre sus gráficos.
¿Cómo puedes utilizar esta herramienta?
pip instalar bokeh
pip instalar gunicorn
from bokeh.layouts import column from bokeh.models import ColumnDataSource, Select from bokeh.plotting import figure, curdoc import numpy as np # Sample data for line plot line_data = { 'x': [1, 2, 3, 4, 5], 'y1': [6, 7, 2, 4, 7], 'y2': [1, 4, 8, 6, 9] } # Data for scatter plot N = 4000 x_scatter = np.random.random(size=N) * 100 y_scatter = np.random.random(size=N) * 100 radii = np.random.random(size=N) * 1.5 colors = np.array([(r, g, 150) for r, g in zip(50 2 * x_scatter, 30 2 * y_scatter)], dtype="uint8") # Create ColumnDataSource for line plot source = ColumnDataSource(data={'x': line_data['x'], 'y': line_data['y1']}) # Create a figure for line plot plot_line = figure(title="Interactive Line Plot", x_axis_label='X', y_axis_label='Y') line1 = plot_line.line('x', 'y', source=source, line_width=3, color='blue', legend_label='y1') line2 = plot_line.line('x', 'y2', source=source, line_width=3, color='red', legend_label='y2', line_alpha=0.5) # Create a figure for scatter plot plot_scatter = figure(title="Scatter Plot", tools="hover,crosshair,pan,wheel_zoom,zoom_in,zoom_out,box_zoom,undo,redo,reset,tap,save,box_select,poly_select,lasso_select,examine,help") plot_scatter.circle(x_scatter, y_scatter, radius=radii, fill_color=colors, fill_alpha=0.6, line_color=None) # Dropdown widget to select data for line plot select = Select(title="Y-axis data", value='y1', options=['y1', 'y2']) # Update function to change data based on selection def update(attr, old, new): selected_y = select.value source.data = {'x': line_data['x'], 'y': line_data[selected_y]} # Update line colors based on selection line1.visible = (selected_y == 'y1') line2.visible = (selected_y == 'y2') plot_line.title.text = f"Interactive Line Plot - Showing {selected_y}" select.on_change('value', update) # Arrange plots and widgets in a layout layout = column(select, plot_line, plot_scatter) # Add layout to current document curdoc().add_root(layout) `
Crea tu página en heroku y sigue los siguientes pasos.
En este archivo declaro por ejemplo en mi caso.
web: servicio bokeh --port=$PORT --address=0.0.0.0 --allow-websocket-origin=juancitoelpapi-325d94c2c6c7.herokuapp.com app.py
bokeh
Es similar cuando impulsas un proyecto en git, pero en este caso el impulso maestro final está en heroku
git init
git agregar.
git commit -m "Implementar la aplicación Bokeh con Gunicorn"
git push heroku maestro
Puedes ver tu página con el bokeh de los gráficos.
El verdadero poder de Bokeh radica en su capacidad para ofrecer paneles interactivos en entornos web, lo que lo hace ideal para el monitoreo de datos en tiempo real y grandes conjuntos de datos. Al utilizar Gunicorn para implementar aplicaciones Bokeh en servicios en la nube como Heroku, puede crear paneles de control escalables y listos para producción que sean fáciles de mantener y actualizar.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3