以这篇帖子Plot multiple columns on line graph using Dash/Plotly作为参考,我希望使用plotly将类似的数据框绘制到线图中。使我陷入困境的是如何将跟踪放入循环中,以便将所有项目都绘制为差异跟踪数据。
data = {'year':['2018','2019'],
'jan':[20009,49599],
'feb':[13000,22000],
'mac':[23345,45888],
'apr':[23399,23399]}
df=pd.DataFrame(data).set_index('year')
apr feb jan mac
year
2018 23399 13000 20009 23345
2019 23399 22000 49599 45888
这是设法获得的最接近的代码
month = ['January', 'February', 'March', 'April']
res=[]
for item in df.index:
res=go.Scatter(
x=month,
y=df.values.tolist(),
mode='lines',
name='df.index',
)
data=[res]
layout = dict(title = 'Budget Monthly',
xaxis= dict(title= 'month',ticklen= 5,zeroline= False)
)
fig = go.Figure(data=data, layout=layout)
py.iplot(fig, filename='line')
Line plot but no separate trace
我们非常感谢您的帮助。 Tq
答案 0 :(得分:0)
希望我的想法正确))
前段时间我遇到了类似的问题,很高兴找到袖扣套件。
要安装袖扣,您需要执行以下命令:
pip install cufflinks
pip install ipywidgets
如果使用的是Ipython,请重新启动笔记本电脑。
这是构建此类绘图的代码示例:
import pandas as pd
import numpy as np
import plotly.offline as py
import plotly.graph_objs as go
plotly.offline.init_notebook_mode()
data = {'year':['2018','2019'],
'jan':[20009,49599],
'feb':[13000,22000],
'mar':[23345,45888],
'apr':[23399,23399]}
df=pd.DataFrame(data).set_index('year')
df=df.transpose()
import cufflinks as cf
py.iplot([{
'x': df.index,
'y': df[col],
'name': col
} for col in df.columns], filename='cufflinks/multiple-lines-on-same-chart')