我正在绘制每种产品amount
的每周YYYYWW
的销售数量(product_name
)。
所有数据都显示在图形上,但是某些产品显示不正确。如果产品A仅从2019年开始才有销售数字(即没有整个2018年的销售数字);然后我希望该产品的行数在2018年为零,并开始显示2019年的值。
发生了什么,产品A从图表的原点显示了折线图。因此,第1周的销售金额改为YYYYWW
201801。
有没有比列表理解为产品设置零值更有效的方法了?
import plotly.graph_objs as go
import plotly.offline as pyo
data = [go.Scatter(x=sorted(df.YYYYWW.unique().astype(str)),
y=list(df.loc[df.product_name == 'Product A',
['amount','YYYYWW']].groupby('YYYYWW').sum().amount),
mode='lines+markers',
)
]
pyo.plot(data)
x中的值是:201801、201802,... 201920
y中的值是:
YYYYWW amount
2019/15 454.32
2019/16 1131.15
2019/17 1152.96
2019/18 2822.77
2019/19 3580.86
2019/20 2265.06
答案 0 :(得分:0)
解决了! 我的x值应该像我的y值一样从数据框的子集中获取:
x = df.loc[df.product_name == i].YYYYWW.unique().astype(str)