Python

【Python】複数のグラフを作成する【→プログラミング初心者向け】

9月 12, 2019

how to create multi graph on python
プログラム学生
Pythonで数式を書けるのは知ってるけど、グラフ表示ってできるんですか!?
できるよ。レンタルサーバなどのLinuxサーバの場合は、手持ちのPCにグラフを転送するために、Xウインドウの仕組みを使う必要があるけど、ここではPythonのグラフ作成の方法について説明するね。
Tommy

この記事で分かること

  • Pythonでグラフを作成する方法が分かる
  • グラフを複数表示する方法が分かる
  • Linuxサーバーを使って計算した結果をWindowsPCに画面転送する方法が分かる

Pythonで複数のグラフを作成する概要

summary of creating multi graph on python

この記事では、Pythonを使ってグラフを描く方法と、描いたグラフを複数表示する方法を説明します。これによって、日頃の業務や作業の中で、ある数式が分かりそれをグラフにして数式の性質を見たい場合や、データを図示して説明する場合に、数式やデータに基づいたグラフを描くことで、自分の理解や、人への説明が直感的で分かりやすくなるといったメリットがあります。

Pythonで複数のグラフを作成する前提環境

environment of creating multi graph on python

Pythonでグラフを描く(プロット)する前提の環境は、下の記事で説明している私の環境と同じ環境で確認しています。

オススメ
how to check version in python
【Python】バージョン確認の方法【→プログラミング初心者向け】

続きを見る

レンタルサーバなどのLinuxサーバを使っている場合は、下の記事でプログラミングする環境の作り方を説明しています。もし、まだプログラムする環境ができていない方は、先にこちらの記事を読んで、プログラミングできる環境をつくることをおすすめします。

オススメ
how to programming on rental server
【Linux】レンタルサーバーでプログラミングする方法【→ブログのサーバーでできる!】

続きを見る

下のコマンドは、グラフを描く為のライブラリ「matplotlib」がインストールされているかどうかを検索しています。「matplotlib」のバージョンが表示されている為、「matplotlib」がインストールされていることが分かります。

$ pip freeze | grep matplotlib
matplotlib==1.3.1

下のコマンドは、数式を扱う為のライブラリ「numpy」がインストールされているかどうかを検索しています。「numpy」のバージョンが表示されている為、「numpy」がインストールされていることが分かります。

$ pip freeze | grep numpy
numpy==1.8.2

Pythonで複数のグラフを作成するサンプルプログラム

sample program of creating multi graph on python

グラフを作成するサンプルプログラムの作成

ここでは、グラフを作成するサンプルプログラムを作成します、サンプルプログラムは大きく以下の順番で説明します。

  1. ライブラリのインポート
  2. グラフ作成の関数の定義
  3. 定義した関数の呼び出し処理

1.ライブラリのインポート

上の手順でインストールされているかどうか確認したライブラリを、今から作るサンプルプログラムにインポート処理を行います。こちらのインポート処理では、「numpy」ライブラリを「np」という名前で、「matplotlib」ライブラリの「pyplot」というモジュールを「np」という名前でインポートすることにします。

import numpy as np
import matplotlib.pyplot as plt

  1. ライブラリ「numpy」を名前「np」としてインポートする。
  2. ライブラリモジュール「matplotlib.pyplot」を名前「plt」としてインポートする。

2.グラフ作成の関数の定義

この関数は、1つ目グラフを変数「x」のSin(サイン)カーブ「y_sin」、2つ目のグラフを変数「x」のCos(コサイン)カーブ「 y_cos」、3つ目のグラフを変数「x」のTan(タンジェント)カーブ「y_tan」、4つ目のグラフは、3つ目の「y_tan」をランダムで出力する「y_random」と定義します。関数「plt.show」で作成したグラフを描画しますが、Linuxでターミナルを使ってPythonファイルを実行している場合、この描画には、Xwindowなどのウインドウシステムが別途必要になります。

Xwindowのウインドウシステムについては、下記の記事で説明していますので、こちらを読んでください。

オススメ
use GUI app with ssh remote connection on Linux
【Linux】SSHリモート接続でサーバーのGUIアプリを使う【→レンタルサーバでも可能】

続きを見る

def create_multi_plot():

    x = np.linspace(0, 5*np.pi, 100)

    y_sin = np.sin(x)
    y_cos = np.cos(x)

    # 1つ目のグラフ
    plt.subplot(2,2,1)
    plt.plot(x, y_sin, label="sin")
    plt.legend()

    # 2つ目のグラフ
    plt.subplot(2,2,2)
    plt.plot(x, y_cos, label="cos")
    plt.legend()

    # 3つ目のグラフ
    plt.subplot(2,2,3)
    y_tan = np.tan(x)
    plt.plot(x, y_tan, label="tan")
    plt.legend()

    # 4つ目のグラフ
    plt.subplot(2,2,4)
    y_random = np.random.randn(len(y_tan))
    plt.plot(x, y_random, label="random")
    plt.legend()

    # 全てのグラフの描画
    plt.show()

  1. 関数「create_multi_plot」を定義宣言する。
  2. 関数「np.linspace」で変数「x」を初期化する。
  3. 変数「y_sin」 を変数「x」のサインカーブの関数で定義する。
  4. 変数「y_cos」を変数「x」のコサインカーブの関数で定義する。
  5. 関数「plt.subplot」を使って、2行2列の1番目の位置にグラフを挿入する。
  6. 関数「plt.plot」を使って、変数「x」と変数「y_sin」との関係のグラフを作成する。
  7. 関数「plt.legend」を使って、グラフに凡例を示す。
  8. 関数「plt.subplot」を使って、2行2列の2番目の位置にグラフを挿入する。
  9. 関数「plt.plot」を使って、変数「x」と変数「y_cos」との関係のグラフを作成する。
  10. 関数「plt.legend」を使って、グラフに凡例を示す。
  11. 関数「plt.subplot」を使って、2行2列の3番目の位置にグラフを挿入する。
  12. 関数「plt.plot」を使って、変数「x」と変数「y_tan」との関係のグラフを作成する。
  13. 関数「plt.legend」を使って、グラフに凡例を示す。
  14. 関数「plt.subplot」を使って、2行2列の4番目の位置にグラフを挿入する。
  15. 関数「plt.plot」を使って、変数「x」と変数「y_random」との関係のグラフを作成する。
  16. 関数「plt.legend」を使って、グラフに凡例を示す。
  17. 関数「plt.show」を使って、全てのグラフを描画する。

3.定義した関数の呼び出し処理

次に、上記で定義した4つのグラフを描く関数「create_multi_plot」の呼び出しを行い、実際にグラフを描く処理をメインのプログラムファイルから呼び出す処理を記載します。

if __name__ == '__main__':
  create_multi_plot()

関数「create_multi_plot」を呼び出す。

グラフを作成するサンプルプログラムの実行結果

上で作成したサンプルプログラムの処理の実行結果が下記のグラフになります。上下左右に4つのグラフを表示されていて、左上が「sin」、右上が「cos」、左下が「tan」、右下が「横軸に対して縦の値にランダムな値をとった図」のグラフを描画できていることが分かります。

result of creating graph on python

上のグラフは、Linuxサーバーで計算した結果をWindowsPCにXウインドウという仕組みを使って、画面転送したものです。Xウインドウの詳細は下記の記事で説明していますので、合わせて読んでください。

オススメ
use GUI app with ssh remote connection on Linux
【Linux】SSHリモート接続でサーバーのGUIアプリを使う【→レンタルサーバでも可能】

続きを見る

Pythonのその他「初心者向け」技術

other technique for python beginner

この記事では、Pythonを使ったグラフを描く方法を説明しました。グラフを描く以外にも、Pythonプログラムの「基礎知識」を下記の記事にまとめています。それぞれの記事には、実行可能なサンプルプログラムを掲載しています。プログラムの動作をご自身で確認することができます。

是非、下記の記事も合わせて読んで、「知識」としてだけではなく、「手」でPythonを覚えていきましょう。

オススメ
article of recommended to python beginner
【Python】初心者向けおすすめ記事まとめ【Pythonの文法をマスターする!】

続きを見る

-Python
-