現在、下記のコードを応用し複数の情報を含んだ表を作成する方法を考えているのですがかなり行き詰まったため良いアイディアがあればご教示お願い致します。
##私がやりたいこと。
・区ごとに昼、夜の騒音について一つの画面にまとめてプロットする。(seabornを使って考えていますが、他に良い方法があればご教示いただきたいです。)
##状況
現在の状況が
①一つの区のcsvデータを昼と夜の関係をプロットできている
②プロットされた表を閉じると次のまた違う区のcsvデータで①と同じように関係をプロットする。
③これを25の江戸川区まで。。。。
といった感じなのですが、、、
これを一気にまとめて混合行列のように表示させたいと考えています。
つまり、含めたい内容は
区ごとにおける昼、夜の間の騒音の関係についてとなります。
現在の状況下で、作成したいと考えた場合、良い手段などはありますでしょうか?
ご教示いただけると幸いです。
###考えたこと
一つ一つの表の表示?をループさせる必要がある?と考えpairplotのインデントを前の行のfor文に合わせました。
ですが、いまいち上手くいきません。出力は上記の現在の状況の通りです。
###該当コード
python
1 2import matplotlib.pyplot as plt 3import matplotlib 4matplotlib.use('TkAgg') 5import pandas as pd 6import os 7import seaborn as sns 8import japanize_matplotlib 9import category_encoders as ce 10 11#市町村ごとの騒音状態を把握する。 12def sound(c): 13 df = pd.read_csv(c,encoding=("SHIFT-JIS")) 14 ''' 15 #特徴量エンジニアリング 16 # OneHotEncodeしたい列を指定。Nullや不明の場合の補完方法も指定。 17 ce_ohe = ce.OneHotEncoder(cols=df.loc[:,["測定地点の住所"]],handle_unknown='impute') 18 # pd.DataFrameをそのまま突っ込む 19 df_session_ce_onehot = ce_ohe.fit_transform(df.loc[:,["測定地点の住所"]]) 20 print(df_session_ce_onehot.head()) 21 ''' 22 de = df.loc[:,['夜間等価騒音レベル(Leq)(dB)','昼間等価騒音レベル(Leq)(dB)']] 23 print("観測地点は,{}".format(df.loc[:,["測定地点の住所"]])) 24 return de 25 26#千代田区 27sound(c="H20_kushichouson_01.csv") 28#中央区 29sound(c="H20_kushichouson_02.csv") 30#港区 31sound(c="H20_kushichouson_03.csv") 32#新宿区 33sound(c="H20_kushichouson_04.csv") 34#文京区 35sound(c="H20_kushichouson_05.csv") 36#台東区 37sound(c="H20_kushichouson_06.csv") 38#墨田区 39sound(c="H20_kushichouson_07.csv") 40#江東区 41sound(c="H20_kushichouson_08.csv") 42#品川区 43sound(c="H20_kushichouson_09.csv") 44#目黒区 45sound(c="H20_kushichouson_10.csv") 46#大田区 47sound(c="H20_kushichouson_11.csv") 48#世田谷区 49sound(c="H20_kushichouson_12.csv") 50#渋谷区 51sound(c="H20_kushichouson_13.csv") 52#中野区 53sound(c="H20_kushichouson_14.csv") 54#杉並区① 55sound(c="H20_kushichouson_15.csv") 56#杉並区② 57sound(c="H20_kushichouson_16.csv") 58#豊島区 59sound(c="H20_kushichouson_17.csv") 60#北区 61sound(c="H20_kushichouson_18.csv") 62#荒川区 63sound(c="H20_kushichouson_19.csv") 64#板橋区 65sound(c="H20_kushichouson_20.csv") 66#練馬区 67sound(c="H20_kushichouson_21.csv") 68#足立区 69sound(c="H20_kushichouson_22.csv") 70#葛飾区 71sound(c="H20_kushichouson_23.csv") 72#江戸川区 73sound(c="H20_kushichouson_24.csv") 74 75 76 77#上記で求めたデータの可視化をする 78for i in range(1,25): 79 if i < 10: 80 v=sound(c="H20_kushichouson_0%d.csv"%i) 81 elif i >= 10: 82 v=sound(c="H20_kushichouson_%d.csv"%i) 83 print(v) 84 sns.set(font="IPAexGothic",) 85 visual = sns.pairplot(v) 86 visual.savefig("sound.png") 87 plt.show() 88 89 90
回答1件
あなたの回答
tips
プレビュー