2017-01-31 98 views
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。您可以使用Plotly使用iplot函數繪製整個數據幀,而不需要數據複製。

另一種方法是使用pandas.plot來獲得matplotlib對象,然後通過plotly.tools.mpl_to_plotl y轉換並繪製。整個過程可以被縮短到一個行:

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

鋸袖釦,但很可惜,我模式Analytics(分析)內這樣做的,他們不尚未支持該庫。 – ScottieB

+0

@ScottieB:錯過了Mode Analytics部分,但添加了一個不需要額外庫的替代方法。 –