質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

996閲覧

表を上手に完成させる方法についてご教示頂きたいです。

jury_new

総合スコア31

Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/07/03 13:54

編集2020/07/04 23:32

現在、下記のコードを応用し複数の情報を含んだ表を作成する方法を考えているのですがかなり行き詰まったため良いアイディアがあればご教示お願い致します。

##私がやりたいこと。
・区ごとに昼、夜の騒音について一つの画面にまとめてプロットする。(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

イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yymmt

2020/07/03 14:59

今表示されている図(sound.png)の横軸、縦軸は何でしょうか?
jury_new

2020/07/04 23:31

返信が遅くなってしまい申し訳ございません。 yymmさんご回答ありがとうございます。 縦軸が昼間等価騒音レベル(Leq)(dB)、夜間等価騒音レベル(Leq)(dB)と続き 横軸は夜間等価騒音レベル(Leq)(dB)、昼間等価騒音レベル(Leq)(dB)と続いております。
jury_new

2020/07/04 23:33

画像を追加させて頂きました。この一つ一つの画像の情報を一つにまとめたいと考えております。
guest

回答1

0

ベストアンサー

単純に昼と夜のプロットを横に5個、縦に5個並べる方法が良いと思います。

python

1fig, ax = plt.subplots(5, 5, figsize=(15, 15)) 2for row in range(5): 3 for col in range(5): 4 index = row * 5 + col + 1 5 filename = f"H20_kushichouson_{index:02}.csv" 6 df = pd.read_csv(filename, encoding=("SHIFT-JIS")) 7 ax[row][col].plot( 8 df["夜間等価騒音レベル(Leq)(dB)"], 9 df["昼間等価騒音レベル(Leq)(dB)"], 10 linestyle="None", 11 marker=".", 12 ) 13 ax[row][col].set_title(f"{index:02}") 14plt.show()

投稿2020/07/08 12:34

編集2020/07/08 12:41
yymmt

総合スコア1615

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jury_new

2020/07/15 01:39

ベストアンサー遅くなって申し訳ございません。 yymmtさんご回答ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問