Pythonのmatplotlibを使用したグラフの描画方法とは?グラフの分割表示や並列表示などについても紹介!

- システム
エンジニア - Pythonのmatplotlibを使ってグラフを描くにはどうすればいいのですか。
- プロジェクト
マネージャー - それでは、Pythonでのmatplotlibを使ったグラフ描画の方法についてご紹介しましょう。
[Python]plotでグラフを描画してみよう!
今回は、Pythonでのmatplotlibを使ったグラフ描画の方法について説明します。matplotlibを使えば、折れ線グラフや円グラフ、棒グラフなど、様々なグラフを描画できます。グラフの分割表示や並列表示などについても紹介します。
Pythonでのmatplotlibを使ったグラフ描画に興味のある方はぜひご覧ください。
折れ線グラフ
Pythonでは、matplotlibのplot関数で、折れ線グラフを描画できます。実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
import matplotlib.pyplot as plt
# プロットデータ
x = ['Jan.', 'Feb.', 'Mar.', 'Apr.', 'May.', 'Jun.']
y1 = [110, 40, 30, 20, 90, 100]
y2 = [40, 10, 40, 80, 60, 90]
y3 = [60, 70, 20, 70, 80, 110]
# プロット
plt.plot(x, y1, marker="o", color = "blue", linestyle = "--", label="test1")
plt.plot(x, y2, marker="v", color = "red", linestyle = ":", label="test2");
plt.plot(x, y3, marker="^", color = "green", linestyle = "-", label="test3");
# タイトル、X軸名、Y軸名
plt.title("title")
plt.xlabel("x label")
plt.ylabel("y label")
# 凡例
plt.legend()
# プロット表示
plt.show()
|
円グラフ
Pythonでは、matplotlibのpie関数で、円グラフを描画できます。実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
import matplotlib.pyplot as plt
# ラベルと値の指定
labels = ["F", "E", "D", "C", "B", "A"]
values = [10, 20, 30, 40, 50, 60]
# 円グラフの強調(飛び出し)
ex = [0, 0, 0, 0, 0, 0.1]
# 色の指定
colors = ["r", "c", "b", "m", "y", "g"]
# 円グラフ描画
plt.pie(values, explode = ex, startangle = 90, labels = labels, autopct = '%1.1f%%', colors=colors)
# タイトル
plt.title("title", fontsize = 22)
# プロット表示
plt.show()
|
棒グラフ
Pythonでは、matplotlibのbar関数で、棒グラフを描画できます。実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
import matplotlib.pyplot as plt
# プロットデータ
labels = ['Jan.', 'Feb.', 'Mar.', 'Apr.', 'May.', 'Jun.']
x = range(0, 6)
y = [10, 20, 30, 40, 50, 60]
# タイトル、X軸名、Y軸名
plt.title("title")
plt.xlabel("x label")
plt.ylabel("y label")
# 棒グラフを描画する
plt.bar(x, y, color="orange", tick_label = labels)
#プロット表示
plt.show()
|
積み上げ棒グラフ
Pythonでは、積み上げ棒グラフにすることもできます。実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
import matplotlib.pyplot as plt
# プロットデータ
labels = ['Jan.', 'Feb.', 'Mar.', 'Apr.', 'May.', 'Jun.']
x = range(0, 6)
y1 = [10, 20, 30, 40, 50, 60]
y2 = [10, 20, 30, 40, 50, 60]
# タイトル、X軸名、Y軸名
plt.title("title")
plt.xlabel("x label")
plt.ylabel("y label")
# 棒グラフ描画
plt.bar(x, y1, color="orange", tick_label = labels, label="test1")
plt.bar(x, y2, bottom=y1, color="green", label="test2")
# 凡例
plt.legend()
#プロット表示
plt.show()
|
分割表示
Pythonでは、matplotlibのadd_subplot関数で、グラフを分割して表示できます。実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
import matplotlib.pyplot as plt
# プロットデータ(折れ線グラフ)
x = ['Jan.', 'Feb.', 'Mar.', 'Apr.', 'May.', 'Jun.']
y1 = [110, 40, 30, 20, 90, 100]
# プロットデータ(円グラフ)
labels = ["F", "E", "D", "C", "B", "A"]
values = [10, 20, 30, 40, 50, 60]
ex = [0, 0, 0, 0, 0, 0.1]
colors = ["r", "c", "b", "m", "y", "g"]
fig = plt.figure()
# 左側のグラフ(折れ線グラフ)
ax1 = fig.add_subplot(1, 2, 1)
ax1.plot(x, y1, marker="o", color = "blue", linestyle = "--", label="test1")
# 折れ線グラフのタイトル、X軸名、Y軸名、凡例
ax1.set_title("graph1")
ax1.set_xlabel("x label")
ax1.set_ylabel("y label")
ax1.legend()
# 右側のグラフ(円グラフ)
ax2 = fig.add_subplot(1, 2, 2)
ax2.pie(values, explode = ex, startangle = 90, labels = labels, autopct = '%1.1f%%', colors=colors)
ax2.set_title("graph2")
# プロット表示
plt.show()
|
並列表示
棒グラフを並べて表示することもできます。実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
import matplotlib.pyplot as plt
import numpy as np
# プロットデータ
labels = ['Jan.', 'Feb.', 'Mar.', 'Apr.', 'May.', 'Jun.']
y1 = [10, 20, 30, 40, 50, 60]
y2 = [10, 20, 30, 40, 50, 60]
# numpyで横軸を設定
x = np.arange(len(y1))
# タイトル、X軸名、Y軸名
plt.title("title")
plt.xlabel("x label")
plt.ylabel("y label")
width = 0.3
# 棒グラフを描画する
plt.bar(x, y1, color="orange", width=width, align='center')
plt.bar(x+width, y2, color="green", width=width, align='center')
# 棒グラフの幅の1/2足す
plt.xticks(x + width/2, labels)
#プロット表示
plt.show()
|
横向き
Pythonでは、barh関数を使用すれば、グラフを横向きに描画することもできます。実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
import matplotlib.pyplot as plt
import numpy as np
# プロットデータ
labels = ['Jan.', 'Feb.', 'Mar.', 'Apr.', 'May.', 'Jun.']
y1 = [10, 20, 30, 40, 50, 60]
y2 = [10, 20, 30, 40, 50, 60]
# numpyで横軸を設定
x = np.arange(len(y1))
# タイトル、X軸名、Y軸名
plt.title("title")
plt.xlabel("x label")
plt.ylabel("y label")
height = 0.3
# 棒グラフを描画する
plt.barh(x, y1, color="orange", height=height, align='center')
plt.barh(x+height, y2, color="green", height=height, align='center')
# 棒グラフの幅の1/2足す
plt.yticks(x + height/2, labels)
#プロット表示
plt.show()
|
- システム
エンジニア - Pythonでのmatplotlibを使ったグラフ描画の方法についてよく分かりました。
- プロジェクト
マネージャー - matplotlibを使えば、折れ線グラフや円グラフ、棒グラフなど、様々なグラフを描画できます。グラフの分割表示や並列表示などについても参考にしてください。
まとめ
いかがでしたでしょうか。Pythonでのmatplotlibを使ったグラフ描画の方法について説明しました。matplotlibを使えば、折れ線グラフや円グラフ、棒グラフなど、様々なグラフを描画できます。グラフの分割表示や並列表示などについても紹介しました。
ぜひご自身でPythonのソースコードを書いて、理解を深めてください。
FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
株式会社オープンアップシステムはこんな会社です
秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
数多くのエンジニアが集まります。

-
スマホアプリから業務系システムまで
スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。
-
充実した研修制度
毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。
-
資格取得を応援
スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。
-
東証プライム上場企業グループ
オープンアップシステムは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
株式会社オープンアップシステムに興味を持った方へ
株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。


Python新着案件New Job
-
マルチロガーソフト開発/東京都豊島区/【WEB面談可/C#経験者/20代後半~40代の方活躍中/経験年数不問】/在宅勤務
月給41万~50万円東京都豊島区(池袋駅) -
マルチロガーソフト開発/東京都豊島区/【WEB面談可/C#経験者/20代前半の方活躍中/経験1年以上の方活躍中】/在宅勤務
月給29万~34万円東京都豊島区(池袋駅) -
商品化予定の振動センサーの運用保守/Python/東京都都内/【WEB面談可】
月給50万~60万円東京都都内(-駅) -
商品化予定の振動センサーの可視化UI開発のテスター/Python/東京都都内/【WEB面談可】
月給25万~35万円東京都都内(-駅) -
商品化予定の振動センサーの運用保守/Python/東京都都内/【WEB面談可】
月給50万~60万円東京都都内(-駅) -
商品化予定の振動センサーの可視化UI開発のテスター/Python/東京都都内/【WEB面談可】
月給25万~35万円東京都都内(-駅)