Using the hvplot tutorial we are trying to generate a bar plot with values as labels on the bars itself.
The bar plot is generated using the following code
import dask.dataframe as dd
import hvplot.pandas
df = dd.read_parquet('data/earthquakes.parq').persist()
df.magType.value_counts().compute().to_frame().hvplot.bar()
How can we add the value of the bars on the bar itself?
Use holoviews hv.Labels() to add value labels to your data.
You create the labels separately and use the * symbol to overlay your labels on your plot.
Here's a working example:
# import libraries
import numpy as np
import pandas as pd
import holoviews as hv
import hvplot.pandas
# create some sample data
df = pd.DataFrame({
'col1': ['bar1', 'bar2', 'bar3'],
'col2': np.random.rand(3)
})
# create your plot
plot = df.hvplot(kind='bar', x='col1', y='col2', ylim=(0, 1.2))
# create your labels separately
# kdims specifies the x and y position of your value label
# vdims specifies the column to use for the value text of your label
labels = hv.Labels(data=df, kdims=['col1', 'col2'], vdims='col2')
# use the * symbol to overlay your labels on your plot
plot * labels