Добавление меток значений в hvplot.bar

Используя руководство по hvplot, мы пытаемся создать столбчатый график со значениями в качестве меток на самих столбцах. .
Гистограмма создается с помощью следующего кода.

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()

введите здесь описание изображения

Как мы можем добавить значение баров на сам бар?


person skibee    schedule 17.11.2019    source источник


Ответы (1)


Используйте holoviews hv.Labels(), чтобы добавить метки значений к вашим данным.

Вы создаете метки отдельно и используете символ * для наложения меток. на вашем участке.

Вот рабочий пример:

# 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


Конечный результат:
введите здесь описание изображения

person Sander van den Oord    schedule 17.11.2019
comment
Мы попытались использовать yoffset, как показано в руководстве по меткам, но затем график исчез - что мы делаем? `labels = hv.Labels(data=df, kdims=['col1', 'col2'], vdims='col2').opts(hv.opts.Labels(yoffset=0.05))` - person skibee; 18.11.2019
comment
я столкнулся с той же проблемой, возможно, вы можете спросить о своей проблеме здесь: gitter.im/pyviz/pyviz Это разработчики и они достаточно оперативно реагируют на проблемы, может они знают решение этого. - person Sander van den Oord; 18.11.2019
comment
На github есть открытая проблема № 3892. - person skibee; 18.11.2019
comment
Если вы переключите серверную часть holoviews на сюжет, используя hv.extension('plotly'), тогда yoffset будет работать. Таким образом, в holoviews он работает для сюжета, но не для боке. - person Sander van den Oord; 18.11.2019
comment
Спасибо за обновление, к сожалению, в моей среде нет сюжета - person skibee; 18.11.2019