LoginSignup
0
0

More than 1 year has passed since last update.

【初心者向け】Matplotlibを使用したグラフ作成  その1:Matplotlibとは

Last updated at Posted at 2022-04-03

はじめに

この記事ではMatplotlibを用いたデータの可視化やグラフの作成方法についてまとめています。

私自身大学の研究活動を通してMatplotlibを使用することが多かったのですが、機能が多いため苦戦していました。
そこで大学生や大学院生が論文や資料作成する上で最低限必要な知識をまとめることにしました。
本記事が初学者の手助けになれば幸いです。

Matplotlibとは?

Matplotlibとは、Pythonのグラフ描画ライブラリです。

名前の由来はMATLABユーザーが使いやすいように設計されていることに関連しているみたいです。

Matplotlibのインストール

Matplotlibは外部ライブラリなので使用環境によってはインストールが必要になります。

  • pipを使用する場合
    コマンドプロンプトから以下のコマンドを入力することでインストールできます。
pipでインストール
pip install matplotlib
  • condaを使用する場合
    Anaconda等の仮想環境を使用している場合はAnaconda promptから以下のコマンドを入力することでインストールできます。
condaでインストール
conda install matplotlib

Matplotlibでグラフを作成する基本的な流れ

基本的なグラフ作成の流れは以下の通りです。
 1. matplotlibのインポート
 2. データの準備
 3. グラフの作成
各ステップについて例を交えて解説していきます。

1. matplotlibのインポート

matplotlibでは、基本的にpyplotモジュールを使用してグラフを描きます。
pyplotモジュールはpltで略称することが慣例で、以降はpltで呼び出すことができます。

matplotlibのインポート
import matplotlib.pyplot as plt

Jupyter Notebookの場合は、ノート内にグラフを表示させるために、マジックコマンドも実行しておきます。

matplotlibのインポート
import matplotlib.pyplot as plt
%matplotlib inline

マジックコマンドの意味は分からなくてもOKですが、気になる方は以下の記事をチェックしてみてください。

2. データの準備

今回はnumpyndarryを使用してsin関数のグラフを描画してみます。
numpyも外部ライブラリであるためpipcondaでインストールが必要となります。

また、numpynpで略称することが慣例となっています。

データの準備
import numpy as np
x = np.linspace(0,2*np.pi)
y = np.sin(x)

linspace()は指定した区間を等間隔に区切った配列を生成することができます。

3. グラフの作成

グラフはplt.plot()で描画することが可能です。

変数名 説明
x 0から2$\pi$までの配列
y 配列xに対応したsinの値が格納された配列
  • plt.plot(x,y) # x,yの配列からグラフを描く
グラフの作成
plt.plot(x,y)
plt.show()

sin.png
グラフを作成することができました。

コード一覧

ステップ1~3をまとめたものを以下に示します。

import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline

x = np.linspace(0,2*np.pi)
y = np.sin(x)

plt.plot(x,y)
plt.show()

おわりに

今回はmatplotlibの基本的なグラフ描画について説明しました。
今後は細かいグラフ設定についてまとめていきたいと思います。
何かあればコメントお願いします。

0
0
0

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
0
0