Hvplot 多列过滤器

Hvplot multiple columns filter

我正在尝试使用 hvplot 绘制带有过滤器的时间序列。我遇到的唯一问题是我想要过滤器中有多个列。 这是我的数据框:

date           city     Prod1 Prod2 Prod3 Prod4
01/07/2012   Limoges      24    45    12     7
02/07/2012   Lyon         39    36    31     27
03/07/2012   Paris        57    48    48     32

我可以展示以下内容:

 df.hvplot(kind='line', x='date', y= 'Prod1', groupby='city')

但是,我最终想要的是显示时间序列中的所有 3 个城市,并将所有产品都放在一个过滤器中,这样我就可以看到它们对每个产品的所有行为。

IIUC,根据中matias的建议,可以使用:

import pandas as pd 
import numpy as np 
import hvplot.pandas

dates = pd.date_range(start='1/1/2012', periods=120)
product_data = np.random.randint(low=10, high=100, size=(120, 3))
city_names = ['city 1', 'city 2', 'city 3'] * 40

df = pd.DataFrame({"date" : dates, "city" : city_names, "Prod1":product_data[:, 0], "Prod2":product_data[:, 1], "Prod3":product_data[:, 2]})
df = df.melt(id_vars=['date', 'city'], value_vars=[f'Prod{i}' for i in (1, 2, 3)], var_name='prod')

df.hvplot(x='date', by='city', groupby=['prod'])

这允许比较所有城市在不同日期的不同产品价值: