2017-01-31 8 views
1

私は列が月でインデックスが日であり、値が累積収益であるパンダデータフレームを動的に生成します。これはかなり簡単です、b/cそれはちょうどmonth/dom/revであるデータフレームをピボットします。プロットのためのトレースの複数のシリーズ

しかし、今私はそれをプロットしてプロットしたいと思います。毎月カラムが拡大するので、手動で1か月にトレースを追加する必要はありません。しかし、単一のトレースに複数の列を組み込むことはできません。私はこれが可能だったと断言できた。

revs = Scatter(
    x=df.index, 
    y=[df['2016-Aug'], df['2016-Sep']], 
    name=['rev', 'revvv'], 
    mode='lines' 
) 
data=[revs] 
fig = dict(data=data) 
iplot(fig) 

これは空のグラフを生成し、エラーは発生しません。理想的には、df[df.columns]をyに渡すだけです。これは可能ですか?

答えて

1

あなたはおそらくcufflinksを考えていました。データ複製なしでiplot関数を使用して、Plotlyでデータフレーム全体をプロットすることができます。

pandas.plotを使用してmatplotlibオブジェクトを取得し、plotly.tools.mpl_to_plotl yで変換してプロットする方法もあります。手順全体を1行に短縮することができます。

plotly.plotly.plot_mpl(df.plot().figure) 

出力は事実上同じですが、凡例には調整が必要です。

import plotly 
import pandas as pd 
import random 
import cufflinks as cf 

data = plotly.tools.OrderedDict() 
for month in ['2016-Aug', '2016-Sep']: 
    data[month] = [random.randrange(i * 10, i * 100) for i in range(1, 30)] 

#using cufflinks 
df = pd.DataFrame(data, index=[i for i in range(1, 30)]) 
fig = df.iplot(asFigure=True, kind='scatter', filename='df.html') 
plot_url = plotly.offline.plot(fig) 
print(plot_url) 

#using mpl_to_plotly 
plot_url = plotly.offline.plot(plotly.tools.mpl_to_plotly(df.plot().figure)) 
print(plot_url) 

enter image description here

+0

はカフスを見たが、残念ながら、私はモード解析の内側にこれをやっていると、彼らはまだそのライブラリをサポートしていません。 – ScottieB

+0

@ScottieB:Mode Analyticsの部分を見逃しましたが、追加のライブラリを必要としない別の方法を追加しました。 –

関連する問題