1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

複数のデータを分割してグラフ化(9つのグラフを3グラフ×3回で出力する)

Last updated at Posted at 2022-03-06

膨大なデータを、確認の為に一括で全てグラフ化したいニーズがあると思うので作りました。

想定環境

Windows10のPythonで作業しています。
pandasとmatplotlibをインストールしておいてください。

はじめに

能書きは省いてやりたい事はこうです。
Before:左上
After:データ3つ毎に分割したグラフ
1.png2.png
3.png4.png

ちなみにデータは適当にでっち上げたこんなやつです。
※自身のpandas操作練習の為に、1行目に無意味なデータ、3行目に空白行を設けてます。
data.png

要点

  • df.iloc[].plot() を使う
  • for で吐き出す

先にコード

graph.py
import pandas as pd
import matplotlib.pyplot as plt

#日本語の文字化け対策
plt.rcParams['font.family'] = "MS Gothic"

#pandasでデータを読み込む。不要な先頭行(0行目)を読み飛ばす為に header=1 を指定し、1行目から読み込み。
input_csv = pd.read_csv('./dummydata.csv', encoding='ANSI', header=1)

#Index(0)のデータを削除(CSVの3行目、今回は1行目から読んでいるのでIndex(0)を削除)
input_csv.drop(0, axis=0, inplace=True)

#データの先頭5行を確認表示
print(input_csv.head())

#Beforeのグラフ
input_csv.plot(subplots=True, figsize=(5, 5), title='Graph Title', xlabel='aaa')

#Afterのグラフ
for i in range(2, len(input_csv.columns), 3):
    input_csv.iloc[:,i:i+3].plot(subplots=True, figsize=(5, 5), title='Graph {}-{}'.format(str(i-1), str(i+1)), xlabel='aaa')

解説1

graph.py
print(input_csv.head())

データの先頭5行を確認表示。
この時点で下記のようにprintされます。
aaaaaaaa.png

解説2

graph.py
for i in range(2, len(input_csv.columns), 3):
    input_csv.iloc[:,i:i+3].plot(subplots=True, figsize=(5, 5), title='Graph {}-{}'.format(str(i-1), str(i+1)), xlabel='aaa')
  1. len(input_csv.columns) でデータの列数を取得 → 今回は 9 となります。
  2. for文で繰り返し処理
  3. iloc[:,i:i+3] で全ての行i列~i+3列までを抽出しplot
  • 項目名を指定して抜き出す→loc[]
  • 列番号を指定して抜き出す→iloc[]
  • figsizeはインチ単位で指定
    です。

おわりに

下記を参考にしました。
Matplotlibで、たくさんの列データから必要な複数データを選択してを一つのグラフに一度に描画する賢い方法

1
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?