[英]Pandas DataFrame plot: specify column from MultiIndex for secondary_y
我正在繪制一個多索引列DataFrame。
使用pandas DataFrame的.plot
方法指定要在secondary_y上繪制的列的語法是什么?
設定
import numpy as np
import pandas as pd
mt_idx = pd.MultiIndex.from_product([['A', 'B'], ['first', 'second']])
df = pd.DataFrame(np.random.randint(0, 10, size=(20, len(mt_idx))), columns=mt_idx)
我的嘗試
df.plot(secondary_y=('B', 'second'))
df.plot(secondary_y='(B, second)')
上述所有方法均無效,因為所有線條均繪制在主要y軸上。
一種可能的解決方案是繪制每列,然后指定secondary=True
。 通過以下方式進行操作需要您指定將其繪制到的軸:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
mt_idx = pd.MultiIndex.from_product([['A', 'B'], ['first', 'second']])
df = pd.DataFrame(np.random.randint(0, 10, size=(20, len(mt_idx))), columns=mt_idx)
df.A.plot(ax=ax)
df.B.plot(ax=ax, secondary_y=True)
plt.show()
您可以刪除較高的列索引級別 。 如果您不想修改原始數據框,則可以對其進行復制。
df2 = df.copy()
df2.columns = df2.columns.map('_'.join)
df2.plot(secondary_y=('B_second'))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.