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'])
这允许比较所有城市在不同日期的不同产品价值:
我正在尝试使用 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,根据
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'])
这允许比较所有城市在不同日期的不同产品价值: