绘图线图遍历列并循环跟踪

时间:2019-07-08 04:36:16

标签: python pandas plotly

以这篇帖子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

1 个答案:

答案 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')

enter image description here