Python

Matplotlibできれいなグラフを描く

By 2021年4月12日No Comments

「Matplotlibでグラフを描けるようになったけれど、思ってたグラフとなんか違う…」

「きれいなグラフを描きたいけれど設定方法が分からない」

Matplotlibを初期設定のまま使用している人も多いのではないでしょうか。そんな方にぜひ読んでいただきたい記事です。

Pythonでグラフを描くときにMatplotlibを使用する人は多いと思います。Matplotlibはとても便利で、デフォルトのスタイルのままでもある程度しっかりとしたグラフを描くことができます。しかし、背景の色やフォントの種類、軸の太さ等々のスタイル設定をすることで、さらにスマートなグラフを作成することができます。

今回の記事では、Matplotlibできれいなグラフを作る方法を解説します。

初期設定のグラフ

まず、今回扱うグラフの初期設定のコードとコードからできたグラフを以下に示します。

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 2*np.pi, 500)
y1 = np.sin(x)
y2 = np.cos(x)
plt.plot(x, y1, label="sin")
plt.plot(x, y2, label="cos")
plt.legend()
plt.xlabel("x")  # 横軸ラベル
plt.ylabel("y")  # 縦軸ラベル
plt.show()

rcParamsを用いたスタイル調整方法

プログラムコード中に設定用のコードであるrcParamsでパラメータを記述することでスタイルを調整することができます。多くのパラメータを変更可能ですが今回はその中でも基本的なものを紹介します。プログラムコードは少し長くなりますが、行っていることはとても単純なので安心してください。

目盛り線の設定

plt.rcParams["figure.figsize"] = [12.0,12.0]  # 図のサイズ([横,縦])
plt.rcParams["xtick.top"] = True  # 上部に目盛り線を描くかどうか
plt.rcParams["xtick.bottom"] = True  # 下部に目盛り線を描くかどうか
plt.rcParams["ytick.left"] = True  # 左部に目盛り線を描くかどうか
plt.rcParams["ytick.right"] = True  # 右部に目盛り線を描くかどうか
plt.rcParams["xtick.direction"] = "in"  # x軸の目盛の向き
plt.rcParams["ytick.direction"] = "in"  # y軸の目盛の向き
plt.rcParams["xtick.major.width"] = 2.0  # x軸の主目盛の太さ
plt.rcParams["ytick.major.width"] = 2.0  # y軸の主目盛の太さ
plt.rcParams["xtick.minor.visible"] = True  # x軸副目盛り線を描くかどうか
plt.rcParams["ytick.minor.visible"] = True  # y軸副目盛り線を描くかどうか
plt.rcParams["xtick.minor.width"] = 1.0  # x軸の副目盛の太さ
plt.rcParams["ytick.minor.width"] = 1.0  # y軸の副目盛の太さ
plt.rcParams["xtick.major.size"] = 4.0  # x軸の主目盛の長さ
plt.rcParams["ytick.major.size"] = 4.0  # y軸の主目盛の長さ
plt.rcParams["xtick.minor.size"] = 2.0  # x軸の副目盛の長さ
plt.rcParams["ytick.minor.size"] = 2.0  # y軸の副目盛の長さ
plt.rcParams["xtick.labelsize"] = 16.0  # x軸の目盛りラベルのフォントサイズ
plt.rcParams["ytick.labelsize"] = 16.0  # y軸の目盛ラベルのフォントサイズ
plt.rcParams["xtick.major.pad"] = 4  # x軸と目盛ラベルの間隔
plt.rcParams["ytick.major.pad"] = 4  # y軸と目盛ラベルの間隔
plt.rcParams["axes.labelsize"] = 20   # 図のフォントラベルのサイズ
plt.rcParams["axes.linewidth"] = 1.5  # 図の枠線の太さ
plt.rcParams["axes.labelpad"] = 6  # 軸と軸ラベルの間隔

フォントの設定

グラフ中で使う文字のフォントを変更することができます。

plt.rcParams["font.family"] = "serif"  # 使用するフォント
plt.rcParams["font.serif"] = "Times New Roman"
plt.rcParams["font.size"] = 14  # フォントの大きさ

凡例の設定

凡例に関する設定をすることができます。

plt.rcParams["legend.loc"] = "best"  # 凡例の位置
plt.rcParams["legend.frameon"] = True  # 凡例を囲うかどうか
plt.rcParams["legend.framealpha"] = 1.0  # 透過度、0.0から1.0の値で低いほど透明
plt.rcParams["legend.facecolor"] = "white"  # 背景色
plt.rcParams["legend.edgecolor"] = "black"  # 囲いの色
plt.rcParams["legend.fancybox"] = True     # Trueにすると囲いの四隅が丸くなる

設定後のグラフ

これまでの設定を加えたグラフが以下のグラフです。これらの設定をコードのどこかに記しておくとこのようになります.

まとめ

今回はMatplotlibできれいなグラフを書く方法について解説しました.初期設定でもある程度まとまったグラフを描くことができるMatplotlibですが,設定次第で自分の思うようにグラフを仕上げることができます。

Udemyの動画学習でもPythonを勉強しよう!

「平日の夜の勉強会には時間が間に合わなくて参加できない」「通勤時間のわずかな隙間時間を勉強時間にあてたい」「本ではよく分からないところを動画で理解を深めたい」そんなあなたはUdemyの動画学習がお勧めです!

UdemyのPythonおすすめ33講座レビューリスト
HOSL

Author HOSL

More posts by HOSL