テクノロジー

Pythonを使いこなそう!データをプロットしてグラフを描く方法とは

Pythonを使いこなそう!データをプロットしてグラフを描く方法とは

Pythonを使うと、画像処理、Webサイトの開発、データベースの構築、言語処理などできるようになりますよね。その中でも代表的なのが「データ分析」です。

そのデータ分析に役立つのがPythonグラフ。グラフ作成は実業務での実施回数が多いため、非常に実用性が高いです。また、作成したコードを使い回しすることで、作業を半自動化する効果もあるので、手作業では何時間もかかるグラフ作成をあっという間に終わらせることだってできます。

さらに、簡単な設定でExcelよりずっと見栄えのよいグラフができ、作成した資料全体のクオリティがグッと上がります。ぜひ、この記事でキレイなグラフの作り方をマスターしましょう!

それでは今回は、Pythonでグラフを描く方法について解説します。

Pythonでグラフを描く、とはどういうことか

綺麗なグラフのイメージ

Pythonでグラフを描くのと、Excelでグラフを描くのとにはどのような違いがあるのでしょうか。ズバリ、結論から申しますと、Pythonはこだわりのグラフが簡単に作れ、資料全体の価値を高める強力な業務効率化アイテムです。

Excelでもグラフは作れます。やり方としてはデータ範囲を選択して、グラフを挿入し、軸のデザインを整えるという流れです。しかし、プロットマークや軸書式など、かっこよく見える「こだわりの」グラフをExcelで作ろうとするとPythonの何倍もの手間がかかります。

これに対してPythonなら、一度こだわりのグラフを作ってしまえば二度目からはソースコードをコピーすれば良いのです。最初は手間に感じますが、使えば使うほど手間は減り、グラフ作成に要する時間をメインの資料作成に充てることができるでしょう。

この結果、限られた時間で見栄えの良いグラフとクオリティの高い資料を作り上げられるのです。

つまり、Pythonグラフは優秀な業務効率化アイテムです。もしあなたの周りにプログラミングができる人がいなければ、Pythonグラフの作成を覚えるだけで周りより1歩も2歩もリードできるに違いありません。このため、しっかりとPythonグラフの使い方を覚えましょう。

Pythonでデータをプロットするやり方

線をひくイメージ

紙面にグラフを描く際、まずは、グラフの描き方を知らないといけません。そして紙を用意し、縦軸横軸を描くことでグラフの基準を作り、あとはデータを元に線を引きますよね。

Pythonグラフでも同じ作業が必要です。Pythonでグラフを描くためにmatplotlibというライブラリをインポートしましょう。そして、グラフを描くためのウィンドウを用意し、ウィンドウ内にグラフの描画範囲を作ります。あとはデータをもとに線を描画します。

matplotlibはPythonグラフの基礎となる存在で、Pythonグラフを語る上で欠かすことができません。matplotlibはライブラリと呼ばれるPythonの拡張機能パックのようなもので、Pythonにグラフ描画の機能を追加します。

matplotlibの他にもSeabornやbokehなど、グラフを描くライブラリはたくさんありますが、matplotlibに依存して成立しているものがほとんどです。そのため、まずはmatplotlibの知識を固め、その上でより応用的なライブラリの使い方を学ぶのがオススメです。

次節にて、Pythonでグラフを描くより具体的な方法について説明します。

Pythonを使ってグラフを描く方法

パソコンのイメージ

まず、Pythonライブラリ管理ツールであるpipの最新化しましょう。pip最新化は、コマンドプロンプトにて「py -m pip install -U pip」を実行するだけです。

次にmatplotlibのインストールのため、コマンドプロンプトにて「pip install matplotlib」を実行します。たったこれだけで、pythonグラフを利用するための環境構築は完了です。

それでは、コーディングに移ります。下記のコードを実行してください。

####### plot_test.py ##########
import matplotlib.pyplot as plt #ライブラリのインポート

x = [-4, -2, 0, 2, 4] #x軸の値となるデータ
y = [-3, -1, 1, 5, 2] #y軸の値となるデータ

fig = plt.figure() #フィギュアオブジェクトの生成
ax1 = fig.add_subplot(111) #サブプロットの生成

ax1.plot(x, y) #グラフの描画 プロットするデータを選択

plt.show() #グラフの表示
###############################

上記コードを実行すると新しくウィンドウが出てきて折れ線グラフが表示されます。これがPythonグラフの基礎中の基礎となります。

上記コードの内、特に重要な部分は、フィギュアオブジェクトの生成とサブプロットの生成です。フィギュアオブジェクトの生成によって、グラフ表示用の別ウィンドウを作成しています。またサブプロットの生成により、作成した別ウィンドウ内にグラフ表示範囲を作成しています。サブプロット生成時の数字111は、1行1列の1番という意味になり、縦に2つのグラフを並べる際には211と212の2つのサブプロットを生成します。

最後に作成した内容を表示させるため、plt.show()を実行します。これがないと何も表示されません。

数字を色々変えてみたり、部分的にコメントアウトすることで結果がどう変化するか、どんなエラーが出るかを試し、感覚を掴みましょう。自分なりにいろいろ変化させて経験を積むことがプログラム上達の近道です。

ここで作成したのは非常に簡単なグラフですが、例えばxの値を日付、yの値を株価とすれば日々の株価変動が視覚化できます。ご自身の実業務に近いデータを入力し、Pythonグラフの強力さを実感できるでしょう。

グラフを作成するにあたって、参考になるサイト

調べるイメージ

matplotlibでPythonグラフの作成をする際、困ったことがあればインターネットで調べるのが最も手っ取り早い解決策です。よほど込み入ったことをしようとしていなければ、大抵の解決方法は解決できるでしょう。

matplotlibについてまとまった情報が欲しいという際には下記のサイトが参考になります。
Scipy Lecture Notes 1.4. Matplotlib: 作図

折れ線グラフだけでなく、棒グラフや散布図などいろいろなグラフの書き方や、グラフサイズなど微調整の仕方がまとまっています。matplotlibを使うとどのようなグラフを描くことができるかを把握すると、いろいろ使いこなすことができるかもしれません。そして、サンプルコードのコピペをベースに思い通りのグラフを作りましょう。

【発展編】Pythonを使って3次元プロットを描く方法

3次元のイメージ

3次元プロットになっても、コードの基本的な構造は変わりません。下記のコードの内、2次元プロットからの変化点を確認しましょう。

####### 3Dplot_test.py ##########
import matplotlib.pyplot as plt
import mpl_toolkits #matplotlib3.2.0以降の場合に必要

x = [1, 2, 3, 4, 5, 6, 7, 8, 9] y = [1, 2, 3, 4, 5, 6, 7, 8, 9] z = [1, 2, 3, 4, 5, 6, 7, 8, 9]

fig = plt.figure()
ax = fig.add_subplot(111, projection=’3d’) #3D表示の際はこのように表記する

plt.show()
#################################

注意点は、mpl_toolkits は matplotlib のバージョンが3.2.0以降の場合インポートが必要なことです。mpl_toolkits は matplotlib の一部ですのでインストール作業は不要ですが、コマンドプロンプトにて「pip freeze」を実行してmatplotlibのバージョンを確認してください。

コードを実行すると、3次元のグラフが表示されます。ぜひ、x, y, zの値を変えるだけでなく、関数での表現にトライしてみましょう。そこまでやると、Pythonを使った3次元グラフの作り方が身についているに違いありません。

まとめ
さて、今回はPythonを用いてグラフを作成する方法について解説しました。それでは内容をおさらいしましょう。

  • Pythonを用いると簡単な設定でExcelよりずっと見栄えのよいグラフが作成できる
  • コードの再利用でグラフ作成を半自動化できる
  • import matplotlib.pyplot as plt を実行し、matplotlibをインポートするとPythonでグラフ描画機能が追加できる
  • fig = plt.figure()を実行し、フィギュアオブジェクトを生成して別ウィンドウを作成する
  • ax1 = fig.add_subplot(111) を実行し、 サブプロットを生成してグラフ描画範囲を作成する
  • plt.show()を実行し、グラフを表示する
  • 3次元グラフのコードの構造は2次元グラフとほぼ同じ

Pythonグラフはとても奥深いです。覚えることも多く、同じコードでも環境の違いによってエラーが出ることもあります。しかし、ひとつひとつの困難を乗り越えることがプログラミング上達の近道です。ぜひ、諦めることなくプログラマーの道を進みましょう!

参考元
PythonユーザのためのJupyter[実践]入門 池内孝啓他 技術評論社 2017/9/22
Scipy Lecture Notes 1.4. Matplotlib: 作図
トップへ戻る
タイトルとURLをコピーしました