En este artículo, aprenderemos sobre Etiquetas en Bokeh . Las etiquetas son las palabras o frases cortas que se utilizan para definir algo en una trama.
Tomemos un ejemplo de que estamos trazando un conjunto de puntos en un gráfico. Ahora, si estamos tratando con datos estadísticos de la vida real, entonces para trazar los puntos en el gráfico, necesitamos etiquetar el eje X y el eje Y con la información adecuada para definir lo que estamos trazando uno contra el otro. Ahí es donde el término entra en su lugar. Nos ayudan a determinar exactamente contra qué estamos tramando en los ejes X e Y. Junto con eso, las etiquetas tienen varias otras funcionalidades en una trama.
Entonces, tomemos una implementación simple de tener etiquetas en el eje X y el eje Y con un grupo de puntos simples. Se puede utilizar Google Colab o cualquier otro editor de texto para implementar el concepto anterior. Pero si estamos usando nuestro dispositivo local, asegúrese de haber instalado Python antes. Y después de eso, necesitamos instalar bokeh . Abra el símbolo del sistema y escriba el siguiente código para instalar:
pip install bokeh
Ahora, tomemos un ejemplo simple para tener una pequeña idea sobre las etiquetas en bokeh. Aquí estamos tomando un conjunto de puntos y trazándolos uno contra el otro con el eje X y el eje Y con etiquetas codificadas usando bokeh.
Código de muestra:
Python3
# importing show from bokeh.io # module to show the plot from bokeh.io import show # importing figure from # bokeh.plotting to create an # empty plot from bokeh.plotting import figure # Creating a set of points using # two arrays x and y x = [1, 2, 3, 4, 5] y = [2, 3, 5, 4, 6] # Creating an empty figure with plot width # and height as 600 p = figure(plot_width=600, plot_height=600) # defining that the points should be joined # with a line p.line(x, y) # Defining the X-Axis Label p.xaxis.axis_label = "X-Axis Label" # defining the Y-Axis Label p.yaxis.axis_label = "Y-Axis Label" # showing the above plot show(p)
Producción:
Ahora, profundicemos un poco en el tema. Además de agregar etiquetas solo en los ejes en el enfoque anterior, bokeh.models.annotations nos proporciona un paquete llamado Etiquetas . Las etiquetas vienen con varias características que vamos a explorar a continuación:
En el siguiente código, usamos etiquetas del módulo bokeh.models.annotations y trazamos un conjunto de puntos en el gráfico. Después de etiquetar los ejes X e Y, estamos etiquetando el segundo punto de la gráfica. Junto con eso, también estamos definiendo la posición de la etiqueta y, en última instancia, mostrando el gráfico anterior.
Ejemplo:
Python3
# importing show from bokeh.io # module to show the plot # importing show from bokeh.io from bokeh.io import show # importing label from # bokeh.models.annotations module from bokeh.models.annotations import Label # importing figure from bokeh.plotting # module from bokeh.plotting import figure # Creating an empty figure with plot # width and size to be 600 and 500 # respectively p = figure(plot_width=600, plot_height=500) # Plotting the points in the shape of # a circle with color green and size 10 p.circle([2, 5, 8], [4, 7, 6], color="green", size=10) # Labelling the X-Axis p.xaxis.axis_label = "X-Axis-Label" # Labelling the Y-Axis p.yaxis.axis_label = "Y-Axis_Label" # Creating a label for the point (5,7) # where the text for the point will be # "Second Point" alng with defining # the position of the text label = Label(x=5, y=7, x_offset=10, y_offset=-30, text="Second Point") # Implementing label in our plot p.add_layout(label) # Showing the above plot show(p)
Producción:
Pasemos al siguiente ejemplo:
En este ejemplo, hablaremos de otra propiedad de las etiquetas, es decir , LabelSet. Pero antes de pasar al código, debemos tener una breve comprensión de lo que es un LabelSet. Ahora, del ejemplo anterior, podemos ver claramente que con la ayuda de las etiquetas, solo podemos etiquetar un solo punto en el gráfico, es decir, «Segundo punto». Pero si queremos etiquetar todos los puntos, entonces no tiene sentido repetir el código cada vez. Entonces, en tal situación, a bokeh se le ocurrió un paquete conocido como LabelSet que nos ayuda a etiquetar múltiples puntos en el gráfico sin repetición. En este ejemplo, usaremos otro paquete, es decir, ColumnDataSource . ColumnDataSource nos proporciona el mapeo de nombres de columnas con una secuencia de valores.
Ahora, pasemos al código para ver la implementación:
Código:
Python3
# importing figure from # Bokeh.plotting from bokeh.plotting import figure # importing ColumnDataSource and LabelSet # from bokeh.models from bokeh.models import ColumnDataSource, LabelSet # import show from broken.io module from bokeh.io import show # Using ColumnDataSource we are providing # Column names to a sequence of values source = ColumnDataSource(data=dict( marks=[166, 171, 172, 168, 174, 162], roll_no=[0, 1, 2, 3, 4, 5], names=['Joey', 'Chandler', 'Monica', 'Phoebe', 'Rachel', 'Ross'])) # Creating an empty figure p = figure(plot_width=750, plot_height=600) # Plotting the data in the form of triangle p.triangle(x='roll_no', y='marks', size=8, source=source) # Labelling the X-Axis p.xaxis.axis_label = 'Roll_Numbers' # Labelling the Y-Axis p.yaxis.axis_label = 'Marks' # Using LabelSet, we are labelling each of the # points with names created in source labels = LabelSet(x='roll_no', y='marks', text='names', x_offset=5, y_offset=5, source=source) Adding that label to our figure p.add_layout(labels) # Showing the above plot show(p)
Producción:
Por último, pero no menos importante, aprenderemos otra anotación, es decir, legend_label, que nos ayuda a diferenciar entre varias parcelas en un gráfico. Al usar la etiqueta «legend_label» , en realidad estamos definiendo el nombre del gráfico que se mostrará en la parte superior derecha del gráfico.
Código:
Python3
# import numpy package import numpy as np # importing figure and show from # bokeh.plotting from bokeh.plotting import figure, show # Creating an array of 100 numbers # between 0 to 1 using linespace x = np.linspace(0, 1, 100) # Creating an array of sin # values of x in y y = np.sin(x) # Creating an empty figure p = figure(plot_width=500, plot_height=500) # Creating the first plot with color as red and label as # sin(x) p.circle(x, y, legend_label="1st Plot", color="red") # Drawing a line through all the points with the # same color p.line(x, y, legend_label="1st Plot", line_color="red") # Drawing the second plot as yellow and labelling as # the 2nd plot p.circle(x, y**3, legend_label="2nd Plot", color="yellow") # Drawing a line through all the points of the # second plot p.line(x, y**3, legend_label="2nd Plot", line_color="yellow", line_width=2) # showing the above plot show(p)
Producción: