A visualização de dados desempenha um papel crítico na interpretação de grandes volumes de informações. Ferramentas como o Bokeh surgiram como soluções populares para a construção de painéis e relatórios interativos. Cada ferramenta traz vantagens exclusivas dependendo da complexidade do seu projeto e da linguagem de programação de sua preferência. Neste artigo, nos aprofundaremos em cada ferramenta e depois nos concentraremos no Bokeh, incluindo um exemplo prático e implantação na nuvem.
Para que...
O que é bokeh?
Bokeh é uma biblioteca de visualização interativa voltada para navegadores modernos para apresentação. Oferece gráficos elegantes e concisos, permitindo aos desenvolvedores construir painéis com interatividade avançada. Bokeh é particularmente adequado para cientistas de dados e desenvolvedores que usam Python, oferecendo interfaces de alto nível e controle granular sobre seus gráficos.
Como você pode usar esta ferramenta?
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) `
Crie sua página no heroku e siga as próximas etapas.
Neste arquivo declare por exemplo no meu caso.
web: bokeh serve --port=$PORT --address=0.0.0.0 --allow-websocket-origin=juancitoelpapi-325d94c2c6c7.herokuapp.com app.py
bokeh
É semelhante quando você envia um projeto no git, mas neste caso o master push final está no heroku
git init
git adicionar.
git commit -m "Implantar aplicativo Bokeh com Gunicorn"
git push heroku mestre
Você pode ver sua página com o bokeh dos gráficos.
O verdadeiro poder do Bokeh reside em sua capacidade de fornecer painéis interativos em ambientes web, tornando-o ideal para monitoramento de dados em tempo real e grandes conjuntos de dados. Ao usar o Gunicorn para implantar aplicativos Bokeh em serviços em nuvem como o Heroku, você pode criar painéis escalonáveis e prontos para produção que são fáceis de manter e atualizar.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3