¿Cómo agregar barras de color en Bokeh?

Bokeh es una de las librerías de Python más prometedoras de los últimos tiempos. Proporciona un alto rendimiento y eficiencia en las visualizaciones de datos. Una de las grandes ventajas de bokeh es que podemos obtener el archivo de salida en varios formatos, como HTML, cuadernos, etc. En este artículo, aprenderemos cómo agregar barras de color en Bokeh.

Ahora, hay varias interfaces de visualización que nos proporciona bokeh, como bokeh.models, bokeh.plotting, bokeh.transform, etc., para que podamos importar varios módulos y usarlos para crear y definir varias propiedades en los gráficos. 

Uno puede usar Google colab que tiene todo preinstalado, pero si estamos usando el dispositivo local, entonces es muy importante instalar bokeh en nuestro dispositivo, de lo contrario, las funcionalidades no funcionarán. Primero, debemos abrir un símbolo del sistema en nuestro escritorio e ir al siguiente directorio donde queremos instalar bokeh. Asegúrese de que ya tiene instalado node.js en su dispositivo local; de lo contrario, puede consultar este sitio web para descargarlo. Después de ir al directorio, escriba el siguiente código en el símbolo del sistema.

pip install bokeh

Ahora, podemos usar cualquier editor de texto para la implementación del concepto anterior.

Código:

Python3

# importing numpy package
import numpy as np
 
# importing figure and show for creating
# and showing plots from bokeh.plotting
# interface
from bokeh.plotting import figure, show
 
# importing LinearColorMapper and ColorBar
# from bokeh.models to create color bars
from bokeh.models import LinearColorMapper, ColorBar
 
# Creating a 2D array of scalar data to plot
d = [[0.11023,0.97382,0.5634],
     [0.66382,0.2484,0.36524],
     [0.6845,0.9824,0.15498]]
 
# Using Linear color mapping, we are deciding
# palette color of the color bar and we are specifying
# low and high determining the range of values in color map
color = LinearColorMapper(palette = "Cividis256",
                          low = 0, high = 1)
 
# Creating a figure where we define
# the x-Axis limits and y-Axis limits
# of the plot
plot = figure(x_range = (0, 1),
              y_range = (0,1))
 
# Creating the image of the plot by
# specifying width and height of the inside plot
# along with color mapper and scalar data d
plot.image(image = [d], color_mapper = color,
           dh = [1], dw = [1], x = [0], y = [0])
 
# Creating the color bar and setting the
# color bar position at (5,6)
cb = ColorBar(color_mapper = color, location = (5,6))
 
# Adding the color bar to the right side
plot.add_layout(cb, 'right')
 
# Showing the above plot
show(plot)

Producción: 

Explicación del código: después de importar todos los paquetes necesarios en el código, estamos creando una base de datos escalar donde almacenamos valores que van de 0 a 1. Después de eso, usando LinearColorMapper , estamos definiendo el color de la paleta y el rango en el barra de color. Luego, estamos creando una figura donde estamos configurando el rango del eje X y el rango del eje Y de 0 a 1. Después de eso, estamos trazando el gráfico anterior usando .image() donde estamos definiendo el ancho y alto de la trazar junto con el punto de inicio de la trama como parámetros. Entonces, después de arreglar la posición y las etiquetas del mapa de color, finalmente mostramos el gráfico anterior como un archivo HTML.

Ejemplo 2:

En lugar de crear un mapa de calor, también podemos crear un gráfico simple y agregarle una barra de color. Pero para eso, necesitamos crear un marco de datos en python. Necesitamos instalar pandas en nuestro dispositivo local si lo estamos usando o si usamos google colab, entonces no necesitamos instalar nada. Abra un símbolo del sistema y escriba el siguiente código:

pip install pandas

Después de la creación del marco de datos , podemos procesar los datos y agregarle una barra de color. A continuación se muestra la siguiente implementación: 

En este segundo ejemplo, no estamos creando un mapa de calor. En su lugar, estamos creando un gráfico con puntos trazados en el gráfico en forma de círculo con el color basado en los colores de la barra de colores. Por lo tanto, para lograr esto, necesitamos crear un conjunto de datos que se deben enmarcar para obtener un formato tabular. Después de realizar la implementación anterior, usaremos LinearColorMapper() para definir el color y el rango del mapa de colores. Después de eso, estamos creando una figura donde estamos definiendo el ancho y la altura de la trama junto con las etiquetas de los ejes X e Y. Luego, estamos definiendo la forma de los puntos trazados, es decir, un círculo y junto con eso estamos usando transform()dentro del cual estamos definiendo nuestro mapa de colores y los valores que llevará cada uno de los puntos (x, y) en esa ubicación. Esto significa que en cada punto el color estará de acuerdo con el valor que lleva y los valores se hacen a partir de la ‘col0’ del marco de datos. Finalmente, mostramos nuestra gráfica resultante.

Código: 

Python3

# importing linear color mapper and colorbar
# from bokeh.models
from bokeh.models import LinearColorMapper, ColorBar
 
# importing transform from bokeh.transform
from bokeh.transform import transform
 
# importing figure and show from
# bokeh.plotting
from bokeh.plotting import figure,show
 
# importing pandas library
import pandas as pd
 
# Creating a set of data in d
d={'Col0':[ 190, 320, 270, 874, 459, 124, 546,
           285, 341, 980, 1002, 453, 324, 245],
   'Col1':[ 71, 128, 34, 49, 52, 87, 78, 25, 67,
           19, 34, 100, 287, 55],
   'Col2':[ 1123, 6471, 8345, 3253, 6420, 1830,
           7849, 2937, 2108, 5392, 1273, 3928, 4927, 7392]}
 
# Converting the set of data into
# a dataframe
 
df = pd.DataFrame(d)
 
# Using linear color mapper, we are
# deciding the color of our color
# bar palette and also defining the
# lowest and highest values
color = LinearColorMapper(palette = 'Viridis256',
                          low = df.Col0.min(),
                          high = df.Col0.max())
 
# Creating a figure where we define
# its height and width along with its x-Axis
# label and Y-Axis Label
colorbar = figure(plot_width = 750, plot_height = 600,
                  x_axis_label = 'Col1', y_axis_label = 'Col2')
 
# Plotting the points in the graph using
# circles where color of the circles will be
# according to their values in the color bar
# along with defined size and opacity
colorbar.circle(x = 'Col1', y = 'Col2',
                source = df, color = transform('Col0', color),
                size = 15, alpha = 0.5)
 
# Defining various other features in the
# color bar such as its location in the
# plot along with its title
color_bar = ColorBar(color_mapper = color,
                     label_standoff = 14,
                     location = (0,0),
                     title = 'Plot')
 
# Defining the position of the color bar
colorbar.add_layout(color_bar, 'right')
 
# Showing the above implementation
show(colorbar)

Producción: 

Ejemplo 3:

En este ejemplo, importaremos un conjunto de datos ‘ autompg ‘ de bokeh.sampledata.autompg .  

Python3

# importing figure and show from bokeh.plotting
# module
from bokeh.plotting import figure,show
 
# importing autompg from bokeh.sampledata.autompg
from bokeh.sampledata.autompg import autompg
 
# importing LinearColorMapper and ColorBar
# from bokeh.models
from bokeh.models import LinearColorMapper, ColorBar
 
# importing transform from bokeh.transform
from bokeh.transform import transform
print(autompg)
 
# Defining the palette color along with
# the max and min values of the color bar
color_mapper = LinearColorMapper(palette = "Viridis256",
                                 low = autompg.weight.min(),
                                 high = autompg.weight.max())
 
# Creating an empty figure where we define the
# X-Axis label, Y-Axis Label
p = figure(x_axis_label = 'Horsepower',
           y_axis_label = 'MPG')
 
# Drawing circular plots in the graph with
# color based on the value from the
# color-mapper
p.circle(x = 'hp', y = 'mpg', color = transform('weight',
                                                color_mapper),
         size = 20, alpha = 0.6, source = autompg)
 
# Defining properties of color mapper
color_bar = ColorBar(color_mapper = color_mapper,
                     label_standoff = 12,
                     location = (0,0),
                     title = 'Weight')
 
# Defining position of the color-mapper
p.add_layout(color_bar, 'right')
 
# Showing the plot
show(p)

Producción: 

 En el tercer ejemplo, estamos importando un conjunto de datos usando bokeh.sampledata.autompg y dado que ya está en formato tabular, no necesitamos usar tramas de datos. Luego estamos siguiendo los mismos pasos que los del Ejemplo 2 y mostrando el gráfico anterior.

Publicación traducida automáticamente

Artículo escrito por dassohom5 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *