亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何通過循環遍歷數據框列列表創建一組自動子圖

如何通過循環遍歷數據框列列表創建一組自動子圖

呼如林 2021-12-16 14:51:11
我想創建高效的代碼,在其中我可以將一組數據框列傳遞給 for 循環或列表推導式,它將根據 matplotlib 或 seaborn 的類型返回一組相同類型的子圖(每個變量一個)我想使用的情節。我正在尋找一種對圖形類型相對不可知的方法。我只嘗試使用 matplotlib 創建代碼。下面,我提供了一個簡單的數據框和我嘗試過的最新代碼。import pandas as pdimport matplotlib.pyplot as plt%matplotlib inlinedf = pd.DataFrame({"A": [1, 2,8,3,4,3], "B": [0, 2,4,8,3,2], "C": [0, 0,7,8,2,1]},                 index =[1995,1996,1997,1998,1999,2000] )df.index.name='Year'fig, axs = plt.subplots(ncols=3,figsize=(8,4))for  yvar in df:    ts = pd.Series(yvar, index = df.index)    ts.plot(kind = 'line',ax=axs[i])    plt.show()我希望看到傳遞給循環的每個變量的子圖。
查看完整描述

2 回答

?
千巷貓影

TA貢獻1829條經驗 獲得超7個贊

這是你想要的


import pandas as pd

import matplotlib.pyplot as plt

df = pd.DataFrame({"A": [1, 2,8,3,4,3], "B": [0, 2,4,8,3,2], "C": [0, 0,7,8,2,1]},

                 index =[1995,1996,1997,1998,1999,2000] )


plt.figure(figsize=(10,10))

for i, col in enumerate(df.columns):

    plt.subplot(1,3,i+1)

    plt.plot(df.index, df[col], label=col)

    plt.xticks(df.index)

    plt.legend(loc='upper left')

plt.show()

http://img1.sycdn.imooc.com//61bae2120001fe0005920578.jpg

用于plt.subplot(no_of_rows, no_of_cols, current_subplot_number)將當前繪圖設置為子繪圖。任何繪圖完成都會去 current_subplot_number。


查看完整回答
反對 回復 2021-12-16
?
皈依舞

TA貢獻1851條經驗 獲得超3個贊

同時循環遍歷列和軸。在循環外顯示繪圖。


fig, axs = plt.subplots(ncols=len(df.columns), figsize=(8,4))

for ax, yvar in zip(axs.flat, df):

    df[yvar].plot(ax=ax)

plt.show()

或者,您也可以直接繪制完整的數據框


fig, axs = plt.subplots(ncols=len(df.columns), figsize=(8,4))

df.plot(subplots=True, ax=axs)

plt.show()


查看完整回答
反對 回復 2021-12-16
  • 2 回答
  • 0 關注
  • 252 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號