簡體   English   中英

Pandas DataFrame圖:從MultiIndex中為secondary_y指定列

[英]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.

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