PythonのMatplotlibで表現できる様々なグラフ

皆さん、こんにちは。

南波真之(なんばさねゆき)と申します。

私はエンジニアではない文系の人間ですが、Pythonの可能性やデータ分析を使った仕事に興味があります。

前回はPythonで2次元グラフを描画するライブラリのMatplotlibを使って、どのようにグラフに描画をするのか、また日本語を表示させる場合に発生することがある「文字化け」の解消方法を説明してきました。

Matplotlibの基本的な使い方について、ご興味ある方はぜひご覧ください。

さて、今回もMatplotlibです。私が勉強している『Pythonによるあたらしいデータ分析の教科書(翔泳社)』の、P184.〜P.201の部分です。Matplotlibを使い、様々な2次元グラフを描画するところを学習してみました。

目次

様々なグラフ描画のためのメソッド

Matplotlibで2次元グラフを描画する際には、それぞれのグラフに対応する「メソッド」を使います。各メソッドには、引数を渡すことで表示させたいものを指定してあげます。

一番基本的な折れ線グラフを例に説明してみます。

折れ線グラフの場合は plotメソッド を利用します。

# matplotlibライブラリの呼び出し。今後pltの3文字で呼び出しができるように as plt としている。
import matplotlib.pyplot as plt
 
# 描画オブジェクト(fig)とサブプロット(ax)を生成する
fig, ax = plt.subplots()
 
# 折れ線グラフのデータを用意
x = [1, 5, 10, 15, 20]
y1 = [1, 2.5, 5, 7.5, 10]
y2 = [25, 20, 15, 10, 5]
 
# 折れ線グラフに表示
ax.plot(x, y1, label=’xとy1′)
ax.plot(x, y2, label=’xとy2′)
# 凡例(ラベル)の表示:左上に表示
ax.legend(loc=’best’)
 
# グラフにタイトルをつける
ax.set_title(‘折れ線グラフのサンプル’)
# x軸の軸ラベルを設定
plt.xlabel(‘x’)
# y軸の軸ラベルを設定
plt.ylabel(‘y’)
 
# グラフに表示
plt.show()

これを実行すると、このようなグラフの描画がされます。

もし日本語が文字化けしましたら、前回の記事に対策を記載していますのでご覧ください。

コードの中で、

ax.plot(x, y1, label=’xとy1′)

ax.plot(x, y2, label=’xとy2′)

としていた部分が折れ線グラフを表示する plotメソッド の部分です。このメソッドでグラフの種類を指定することが可能です。主要なグラフは一覧で記載します。

【Matplotlibのグラフメソッド】

  • 折れ線グラフ:plotメソッド
  • 棒グラフ:barメソッド
  • 散布図:scatterメソッド
  • ヒストグラム:histメソッド
  • 箱ひげ図:boxplotメソッド
  • 円グラフ:pieメソッド

グラフはデータの見せ方によって変えるものですので、適切な表現をこのグラフメソッドで表示できるようにしておきたいところです。

それでは、試しにいくつかグラフを作ってみます。表示するデータについては説明上、コードの中に記載しておりますのでご了承ください。

棒グラフを使った冷蔵庫の月別売上高

# 描画オブジェクト(fig)とサブプロット(ax)を生成する
fig, ax = plt.subplots()
 
# 折れ線グラフのデータ
x = [1, 2, 3, 4 ,5 ,6, 7, 8, 9, 10, 11, 12]
y1 = [100, 104, 300, 210, 102, 76, 110, 100, 40, 99, 96, 120]
 
# 棒グラフに表示
ax.bar(x, y1, label=’冷蔵庫’)
# 凡例(ラベル)の表示:左上に表示
ax.legend(loc=’best’)
 
# グラフにタイトルをつける
ax.set_title(‘2021年冷蔵庫売上高(月別)’)
# x軸の軸ラベルを設定
plt.xlabel(‘月’)
# y軸の軸ラベルを設定
plt.ylabel(‘売上高(百万円)’)
# グラフに表示
plt.show()

次は、散布図を使ってみます。

気温と肉まんの売上の関連性

import numpy as np
 
fig, ax = plt.subplots()
 
# 利用するデータ
## 平均気温データ
temp = np.array([5.4, 8.5 ,12.8, 15.1, 19.6, 22.7, 25.9, 27.4, 22.3, 18.2, 13.7, 7.9])
 
## 売上データ
sales = np.array([582, 603, 553, 480, 385, 320, 223, 163, 169, 206, 269, 321])
 
# 散布図を描画
ax.scatter(temp, sales, marker=’s’)
 
# タイトルなどの記載
ax.set_title(‘平均気温と肉まんの売上の関連性’)
ax.grid()
# x軸の軸ラベルを設定
plt.xlabel(‘月別平均気温(℃)’)
# y軸の軸ラベルを設定
plt.ylabel(‘売上高(百万円)’)
 
plt.show()

いかがでしょうか。

グラフはどういう情報を伝えたいのかで使い方が変わってくるものですのでその部分を判断していただければ、あとはMatplotlibを使ってかんたんに描画ができます。細かい情報はMatplotlibの公式ドキュメントに記載があります。興味があればぜひご覧ください。

Matplotlibを使いこなすためには基本的な統計や図式の知識も

いかがでしたでしょうか。

今回はMatplotlibを使い、様々なグラフ描画について取り上げてきました。

私達が学習しているPythonやMatplotlibは、あくまで「ツール」です。本質はこの「ツール」を使って何がしたいのか、という部分です。

そのため、どういったデータをどのように表現して何に使いたいのか、という具体的なユースケースを想定して学習したほうが身につきますし、楽しいと思っています。

私は普段は一般企業でビジネスをしているため、売上やその周辺のデータをこのMatplotlibなどを使ってどう表現できるか、という観点で学習しています。

インターネット・アカデミーは、Python講座が充実しています。Python認定スクールにもなっているため質の高い知識を得ることができ、基礎学習の先にあるそれぞれの目標を目指していくためには良い場所となります。

よく、「プログラミングは独学でもなんとかなる」という情報もありますが、新しいことを学んでいく際の近道は「プロに教えてもらうこと」だと思います。

インターネット・アカデミーはキャリアサポートも充実しており、一人ひとりに専任のキャリアプロデューサーがサポートしてくれるため中途半端になることがありません。

ご興味ある方は各講座のページを覗いてみてください。無料カウンセリングもできます。

Pythonの基礎からDjangoフレームワークを使ったWebアプリケーションを作りたい方向けの「Python講座」

Pythonを活用したAIプログラミング、機械学習を実装したい方向けの「AIプログラミング講座」

良い記事だなって思ったら、是非シェアをお願いします!
  • URLをコピーしました!
  • URLをコピーしました!
目次
閉じる