前提・実現したいこと
Python Matplotlibでグループごとにグラフを作成したいのですが、forループの方法が分りません。以下のコードの「Lot」のグループごとに3つのグラフを作成したいです。
発生している問題・エラーメッセージ
1つ目のグラフはLot"A"のみですが、2つ目のグラフは"A"と"B"、3つ目のグラフは"A"と"B"と"C"が重なったものとなってしまいます。2つ目、3つ目のグラフはそれぞれ"B"、"C"のみにしたいです。
該当のソースコード
Python
1%matplotlib inline 2import matplotlib.pyplot as plt 3import pandas as pd 4 5columns = ["Lot", "Process", "C1", "C2", "C3", "C4", "C5"] 6index = ["0", "1", "2", "3", "4", "5",] 7data = [["A", "X", 9, 8, 5, 6, 9], 8 ["A", "Y", 9, 7, 3, 7, 8], 9 ["B", "X", 8, 6, 4, 5, 9], 10 ["B", "Y", 7, 5, 3, 2, 5], 11 ["C", "X", 6, 8, 8, 5, 3], 12 ["C", "Y", 5, 7, 6, 4, 2]] 13 14df = pd.DataFrame(data=data, columns=columns, index=index) 15 16# グラフ作成のためデータのみのデータフレームを作成 17df1 = df.loc[:, "C1":"C5"] 18 19fig, ax = plt.subplots() 20 21for i in range(6): 22 23 x = df1.columns 24 y = df1.iloc[i] 25 26 ax.plot(x, y, label = df.iloc[i,1]) 27 ax.legend(loc= 'upper left') 28 29 fig.savefig("./fig_file/Fig_"+ df.iloc[i,0] +".png") 30
試したこと
gr = df.groupby("Lot") でグループして、「for i in gr:」 としてもエラーが出てうまくいきませんでした。
補足情報(FW/ツールのバージョンなど)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/16 08:31