![](/img/trans.png)
[英]Python Pandas MultiIndex Plot has incorrectly colored legend
[英]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.