簡體   English   中英

Python:Pandas MultiIndex圖上的圖例顏色錯誤

[英]Python: Legend has wrong colors on Pandas MultiIndex plot

我正在嘗試繪制來自2個單獨的MultiIndex的數據,每個中的數據與級別相同。

當前,這正在生成兩個單獨的圖,並且我無法通過添加一些字符串來個性化圖上的每一行來定制圖例。 任何幫助,將不勝感激!

到目前為止,這是方法:

def plot_lead_trail_res(df_ante, df_post, symbols=[]):

if len(symbols) < 1:
    print "Try again with a symbol list. (Time constraints)"
else:
    df_ante = df_ante.loc[symbols]
    df_post = df_post.loc[symbols]
    ante_leg = [str(x)+'_ex-ante' for x in df_ante.index.levels[0]]
    post_leg = [str(x)+'_ex-post' for x in df_post.index.levels[0]]
    print "ante_leg", ante_leg
    ax = df_ante.unstack(0).plot(x='SHIFT', y='MUTUAL_INFORMATION', legend=ante_leg)
    ax = df_post.unstack(0).plot(x='SHIFT', y='MUTUAL_INFORMATION', legend=post_leg)
    ax.set_xlabel('Time-shift of sentiment data (days) with financial data')
    ax.set_ylabel('Mutual Information')

使用此函數調用:

sentisignal.plot_lead_trail_res(data_nasdaq_top_100_preprocessed_mi_res, data_nasdaq_top_100_preprocessed_mi_res_validate, ['AAL', 'AAPL'])

我得到下圖:

當前情節

理想情況下,兩組線都將在具有相同軸的同一圖形上!

更新2 [串聯解決方案]

我已經解決了使用串聯從多個幀進行繪制的問題,但是圖例與圖形上的線條顏色不匹配。

沒有對圖例的特定調用,並且未使用plot()中的label參數。

碼:

df_ante = data_nasdaq_top_100_preprocessed_mi_res
df_post = data_nasdaq_top_100_preprocessed_mi_res_validate
symbols = ['AAL', 'AAPL']
df_ante = df_ante.loc[symbols]
df_post = df_post.loc[symbols]
df_ante.index.set_levels([[str(x)+'_ex-ante' for x in df_ante.index.levels[0]],df_ante.index.levels[1]], inplace=True)
df_post.index.set_levels([[str(x)+'_ex-post' for x in df_post.index.levels[0]],df_post.index.levels[1]], inplace=True)

df_merge = pd.concat([df_ante, df_post])
df_merge['SHIFT'] = abs(df_merge['SHIFT'])

df_merge.unstack(0).plot(x='SHIFT', y='MUTUAL_INFORMATION')

圖片:

多索引圖圖像

我認為

ax = df_ante.unstack(0).plot(x='SHIFT', y='MUTUAL_INFORMATION', legend=ante_leg)

您將plot()的輸出放在ax ,包括行,然后被第二個函數調用覆蓋。 我是對的,首先繪制的線不見了嗎?

官方程序會有點像

fig = plt.figure(figsize=(5, 5)) # size in inch
ax = fig.add_subplot(111) # if you want only one axes

現在,您在ax有一個axes對象,可以將其用作下一個繪圖的輸入。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM