我试着用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')然而,我最终想要的是在时间序列上向所有的三个城市展示,并且把所有的产品都放在一个过滤器中,这样我就可以看到它们对每种产品的行为。
发布于 2022-06-02 18:47:47
在comment中使用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'])这样就可以比较所有城市在日期之间的不同产品价值:

https://stackoverflow.com/questions/72476687
复制相似问题