Диаграммы предназначены для построения категориальных данных (с не слишком большим количеством категорий)
У вас есть временные метки, поэтому обычно линейный график или график рассеяния лучше подходят для построения более длинных периодов.
Вот 2 возможных решения для гистограмм :
1) Вы можете использовать .redim.values () , чтобы указать какие категории c вы хотели бы иметь на своей оси x:
import pandas as pd
import hvplot.pandas
import holoviews as hv
from holoviews import opts
hv.extension('bokeh')
df = pd.DataFrame({
'dates': [pd.Timestamp(2020, 1, 1), pd.Timestamp(2020, 1, 3)],
'values': [30, 10],
})
# specify which categories you would like to show
# if you need a long list, better use a for loop to generate list
new_date_values = [
pd.Timestamp(2020, 1, 1),
pd.Timestamp(2020, 1, 2),
pd.Timestamp(2020, 1, 3),
]
# use redim.values() to specify which categories you would like to show
bar_plot = hv.Bars(df)
bar_plot.redim.values(dates=new_date_values)
2) Но, возможно, еще проще изменить вашу df :
* установка даты в качестве индекса вашего фрейма данных и
* , затем выполните df.asfreq ('D') из pandas.
Asfreq ('D') обеспечивает отображение каждой даты в вашем индексе.
# set dates as your index and use .asfreq('D)
df = df.set_index('dates').asfreq('D')
bar_plot = hv.Bars(df)
bar_plot
Итоговый участок: