En este artículo, aprenderemos sobre varios glifos y también sobre cómo agregar una leyenda en bokeh . Ahora bokeh nos proporciona una variedad de glifos que se pueden usar para representar un punto en una trama. Algunos glifos son círculo, cuadrado, asterisco, triángulo_invertido(), triángulo(), etc.
Instalación
Este módulo no viene integrado con Python. Para instalarlo, escriba el siguiente comando en la terminal.
pip install bokeh
Múltiples glifos en Bokeh
En este ejemplo, exploraremos diferentes tipos de glifos en bokeh. Cada glifo en la implementación a continuación tiene diferentes propiedades para identificarse. Entonces, pasemos al código para entender el concepto.
Código:
Python3
# importing numpy package import numpy as np # importing figure and show from # bokeh.plotting module from bokeh.plotting import figure, show # using numpy package to # create a list of 5 numbers x = np.arange(5) # y is stored with the square # of the numbers in x y = x**2 # z is storing 3 times the value # of the elements in x z = x*3 # storing 7 numbers in p between # 1 to 20 p = np.linspace(1,20,7) # storing 7 numbers in q between # 1 to 10 q = np.linspace(1, 10, 7) # storing 5 numbers in r between # 1 to 30 r = np.linspace(1, 30, 5) # creating 31 elements in a list a = np.arange(31) # creating an empty figure with specific plot # width and height fig = figure(plot_width = 600 , plot_height = 600) # plotting the points in the form of # circular glyphs fig.circle(x, y, color = "red", size = 20) # plotting the points in the form of # square glyphs fig.square(x, z, color = "blue", size = 15, alpha = 0.5) # plotting the points in the form of # hex glyphs fig.hex(y, z, color = "green", size = 10, alpha = 0.7) # drawing a line between the plotted points fig.line(x, y, color = "green", line_width = 4) # plotting the points in the form of # inverted triangle glyph fig.inverted_triangle(p, q, color = "yellow", size = 20, alpha = 0.4) # plotting the points in the form of # diamond glyphs fig.diamond(x, r, color = "purple", size = 16, alpha = 0.8) # plotting the points in the form of # cross glyphs fig.cross(a, a, size = 14) # showing the above plot show(fig)
Producción:
Explicación:
- Al principio, estamos importando paquetes numpy , figure y show de diferentes módulos.
- Ahora, estamos creando un rango de números usando organizar y almacenando la lista en x.
- A partir de entonces, también estamos inicializando diferentes variables para trazar el gráfico entre sí.
- Después de la inicialización, estamos creando una figura vacía con un ancho y alto de trama de 600.
- Dado que el bokeh nos proporciona diferentes tipos de glifos, estamos implementando algunos de ellos en este ejemplo con varios colores y tamaños de los puntos. El conjunto de puntos con forma de círculo tiene un color rojo y un tamaño de 20, mientras que el conjunto de puntos con forma de hexágono tiene un color verde junto con un tamaño de 10 y la opacidad del color es 0,7 (indicado por alfa ).
Múltiples glifos con leyenda bokeh
Ahora, pasemos al siguiente tema de este artículo y esa es la leyenda del bokeh. La leyenda juega un papel muy importante en las tramas de bokeh. Nos ayudan a identificar los diferentes tipos de glifos que se utilizan en una trama. Junto con eso, también podemos cambiar diferentes propiedades del cuadro que pueden diferenciar diferentes glifos.
Ejemplo 1:
En este ejemplo, exploraremos varios glifos junto con la leyenda de bokeh para identificarlos y también cambiaremos algunas propiedades del cuadro que diferencia las tramas. Esto es importante porque, en una trama con varios tipos de glifos, necesitamos algo para identificarlos y es entonces cuando la leyenda del bokeh juega su papel. Pasemos ahora a la implementación del código.
Código:
Python3
# importing numpy as np import numpy as np # importing figure and show from # bokeh.plotting from bokeh.plotting import figure, show # creating a list of numbers from 0-10 x = np.arange(11) # Creating square of the numbers and # storing it in y y = np.linspace(1,5,11) # Creating an array of random values in # z z = np.linspace(0,2,11) # Creating a plot with plot width and height # as 600 p = figure(plot_height = 600 , plot_width = 600) # Plotting first line in the form of circle p.circle(x, y, legend_label = "Circle", size = 30) # Creating first line in the form of square p.square(x, y*2, legend_label = "Square", size = 20, color = "green") # Creating forth line in the form of line p.inverted_triangle(x, y*3, legend_label = "Inverted Triangle", size = 15, color = "purple") # Increasing the glyph height p.legend.glyph_height = 50 # increasing the glyph width p.legend.glyph_width = 90 # showing the above plot show(p)
Producción:
Explicación:
- Estamos creando tres variables diferentes con un conjunto de valores que se grafican entre sí.
- Podemos ver tres parcelas, cada una de diferentes glifos. De acuerdo con el código, hemos proporcionado glifos circulares con tamaño 30, glifos cuadrados con tamaño 20 y glifos triangulares invertidos con tamaño 15. Además, todos los glifos también son de diferentes colores.
El concepto principal que se encuentra en este ejemplo es que hemos proporcionado etiquetas para cada una de las parcelas en el gráfico y, al usar la leyenda en bokeh, estamos cambiando las propiedades de los glifos que se muestran en el cuadro en la esquina superior derecha (que es por defecto).
Ejemplo 2:
En el último ejemplo, importaremos un conjunto de datos a nuestro código. Después de eso, trazaremos diferentes gráficos y usaremos la leyenda bokeh, cambiaremos el tamaño de la etiqueta y el tamaño del glifo, respectivamente. Pasemos a la implementación.
Código:
Python3
# importing autompg dataset from bokeh.sampledata.autompg from bokeh.sampledata.autompg import autompg # importing columndatasource package from # bokeh.models module from bokeh.models import ColumnDataSource # importing figure and show from # bokeh.plotting module to plot the figure from bokeh.plotting import figure, show # provides data to the glyphs of the plot source = ColumnDataSource(autompg) # Creating an empty figure p = figure(plot_height = 600, plot_width = 600) # Creating circular glyphs with points plotted from # columns taken from auto-mpg dataset p.circle(x = 'hp', y = 'mpg', size = 20, alpha = 0.6, source = autompg , legend_label = "Blue") # Creating circular glyphs with points plotted from # columns taken from auto-mpg dataset with different colors p.circle(x = 'hp', y = 'displ', size = 20, alpha = 0.6, color = "green" , source = autompg, legend_label = "Green") # Adjusting the label height using legend p.legend.label_height = 50 # Adjusting the label_width using legend p.legend.label_width = 50 # Adjusting the glyph width using legend p.legend.glyph_width = 90 # Adjusting the glyph height using legend p.legend.glyph_height = 90 # Showing the above plot show(p)
Producción:
Explicación:
- Además de importar todos los paquetes que hemos importado anteriormente, esta vez estamos importando un nuevo conjunto de datos automático-mpg . Junto con eso, también estamos importando el paquete ColumnDataSource .
- Con el paquete ColumnDataSouce, lo creamos manualmente, lo que nos ayuda a compartir datos entre múltiples gráficos y widgets.
- Después de eso, estamos trazando datos tomados del conjunto de datos de auto-mpg uno contra el otro.
- Luego, usando la propiedad de leyenda de bokeh (figure.legend.label_width,figure.legend.glyph_width,figure.legend.label_height,figure.legend.glyph_height) estamos cambiando el tamaño de las etiquetas y glifos utilizados para identificar las parcelas en el gráfico.