描画スタイルしたい(matplotlib.rcParams

 1import matplotlib as mpl
 2
 3mpl.rcParams["figure.figsize"] = (6, 4)
 4mpl.rcParams["figure.dpi"] = 200
 5mpl.rcParams["font.family"] = "sans-serif"
 6mpl.rcParams["font.size"] = 12
 7
 8mpl.rcParams["axes.titlesize"] = 14
 9mpl.rcParams["axes.labelsize"] = 12
10mpl.rcParams["axes.grid"] = True
11
12mpl.rcParams["lines.linewidth"] = 2
13mpl.rcParams["lines.markersize"] = 6
14
15mpl.rcParams["legend.fontsize"] = 10

matplotlib.rcParamsで、全体の描画スタイルを変更できます。 設定した内容は、以降のすべての描画に適用されます。 いつも使う設定は ~/.config/matplotlib/matplotlibrcファイルに保存しておくと便利です。

上のサンプルに、 キャンバス設定やフォント設定など、よく設定するスタイルをまとめてみました。

リセットしたい(matplotlib.rcdefaults

1import matplotlib as mpl
2mpl.rcdefaults()

matplotlib.rcdefaultsで全体の描画スタイルをデフォルトにリセットできます。

キャンバス設定したい(rcParams.figure.*

 1# キャンバス全体の設定
 2mpl.rcParams["figure.figsize"] = (6, 4)         # default: (6.4, 4.8) in inches
 3mpl.rcParams["figure.dpi"] = 200                # default: 100 | 200 | 300
 4mpl.rcParams["figure.layout"] = "constrained"   # default: None | "constrained" | "compressed" | "tight"
 5mpl.rcParams["figure.autolayout"] = True        # default: False | True
 6
 7# キャンバスの背景色
 8mpl.rcParams["figure.facecolor"] = "lightgray"  # default: "white" | "lightgray" | "none"
 9mpl.rcParams["figure.frameon"] = False          # default: True | False
10
11# 全体のタイトル設定
12mpl.rcParams["figure.titlelocation"] = "left"  # default: "center" | "left" | "right"
13mpl.rcParams["figure.titlesize"] = 14          # default: "large" | "medium" | "small" | 14
14mpl.rcParams["figure.titleweight"] = "bold"    # default: "normal" | "bold"
15mpl.rcParams["figure.titlepad"] = 6            # default: 6 in points
16mpl.rcParams["figure.titlecolor"] = "blue"     # default: "black" | "blue" | "red" | "green"

figure.*オプションで、キャンバス全体の設定を変更できます。 キャンバスのサイズや解像度、レイアウトなどを変更できます。

フォント設定したい(rcParams.font.*

 1# フォントの種類やサイズ
 2mpl.rcParams["font.family"] = "Noto Sans CJK JP"  # default: "sans-serif" | "serif" | "cursive" | "fantasy" | "monospace"
 3mpl.rcParams["font.size"] = 12        # default: 10 | 12 | 14 | "small" | "medium" | "large"
 4mpl.rcParams["font.weight"] = "bold"  # default: "normal" | "bold"
 5
 6# フォントの種類を細かく指定
 7# serif: 明朝体、sans-serif: ゴシック体、monospace: 等幅フォント、cursive: 筆記体
 8mpl.rcParams["font.serif"] = ["Times New Roman", "serif"]             # default: ["Times New Roman", "serif"]
 9mpl.rcParams["font.sans-serif"] = ["Noto Sans CJK JP", "sans-serif"]  # default: ["DejaVu Sans", "sans-serif"]
10mpl.rcParams["font.monospace"] = ["Courier New", "monospace"]         # default: ["DejaVu Sans Mono", "monospace"]
11mpl.rcParams["font.cursive"] = ["Comic Sans MS", "cursive"]           # default: ["Apple
12Chancery", "cursive"]
13
14
15# マイナスの表示
16mpl.rcParams["axes.unicode_minus"] = False  # default: True | False

font.*オプションで、フォントの種類やサイズを変更できます。 font.familyで、和文フォントを指定すれば、タイトルや軸タイトルで日本語を表示できます。

注釈

和文フォントは「Unicodeのマイナス」を持ってないことがあるそうです。 axes.unicode_minus=Falseにしておくと、マイナスが通常のハイフンで表示されるようになり、豆腐化(=文字化け)せずに安全に表示できます。

1mpl.rcParams["font.family"] = [
2  "Noto Sans CJK JP",
3  "IPAexGothic",
4  "Yu Gothic",
5  "Hiragino Sans",
6  "sans-serif",
7]

フォントはリスト形式で複数指定できます。 上から順番に、環境にインストールされているフォントが使われます。

1import japanize_matplotlib

japanize_matplotlibをインポートすると、日本語設定がお手軽に完了できます。 フォントはIPAexGothicが使われます。

カラーマップ設定したい(rcParams.image.*

mpl.rcParams["image.cmap"] = "viridis"  # default: "viridis"
mpl.rcParams["image.interpolation"] = "nearest"  # default: "antialiased" | "nearest"
mpl.rcParams["image.aspect"] = "equal"  # default: "equal" | "auto"

image.*オプションで、カラーマップの設定を変更できます。 カラーマップの種類はcolormap referenceを参照してください。 色覚多様性に配慮する場合は、viridisplasmaなどのカラーマップを選択するとよいと思います。

注意

image.cmapの設定は、imshowpcolormeshなどのカラーマップを前提とした描画に影響します。scatterでもcオプションを指定した場合に適用されます。

一方で、plotbarなどの描画ではaxes.prop_cycleの設定が優先されます。 うまく色が変わらない場合は、明示的にcmapオプションを指定してみてください。

軸設定したい(rcParams.axes.*

 1# 軸のタイトル設定
 2mpl.rcParams["axes.titlesize"] = 14            # default: "large" | "medium" | "small" | 14
 3mpl.rcParams["axes.titleweight"] = "bold"      # default: "normal" | "bold"
 4mpl.rcParams["axes.titlecolor"] = "blue"       # default: "black" | "blue" | "red" | "green"
 5mpl.rcParams["axes.titlepad"] = 6              # default: 6 in points
 6
 7# 軸のラベル設定
 8mpl.rcParams["axes.labelsize"] = 12          # default: "large" | "medium" | "small" | 12
 9mpl.rcParams["axes.labelweight"] = "bold"    # default: "normal" | "bold"
10mpl.rcParams["axes.labelcolor"] = "blue"     # default: "black"
11mpl.rcParams["axes.labelpad"] = 4           # default: 4 in points
12
13# 軸の線や背景の設定
14mpl.rcParams["axes.linewidth"] = 1             # default: 1
15mpl.rcParams["axes.linecolor"] = "black"       # default: "black" | "gray" | "lightgray"
16mpl.rcParams["axes.edgecolor"] = "black"       # default: "black" | "gray" | "lightgray"
17mpl.rcParams["axes.facecolor"] = "lightgray"   # default: "white" | "lightgray" | "none"

axes.*オプションで、軸のタイトルやラベル、線や背景の設定を変更できます。

グリッド設定したい(rcParams.axes.grid.*

1# グリッド線の表示
2mpl.rcParams["axes.grid"] = True             # default: False | True
3# グリッド線の詳細
4mpl.rcParams["axes.grid.which"] = "both"      # default: "major" | "minor" | "both"
5mpl.rcParams["axes.grid.axis"] = "x"        # default: "both" | "x" | "y"
6mpl.rcParams["axes.grid.linestyle"] = ":"     # default: "--" | "-" | ":" | "-."
7mpl.rcParams["axes.grid.linewidth"] = 1.0      # default: 0.5 | 1.0
8mpl.rcParams["axes.grid.color"] = "black"      # default: "gray" | "black"

axes.grid.*オプションで、グリッド線の表示を変更できます。 aces.gridTrueにすると、グリッド線が表示されます。

マーカー設定したい(rcParams.lines.*

1# 線の設定
2mpl.rcParams["lines.linewidth"] = 2
3mpl.rcParams["lines.linestyle"] = "-"  # default: "-" | "--" | "-." | ":"
4
5# マーカーの設定
6mpl.rcParams["lines.markersize"] = 6
7mpl.rcParams["lines.marker"] = "o"  # default: "o" | "s" | "^" | "D" | "x" | "+" | "*"
8mpl.rcParams["lines.markerfacecolor"] = "blue"  # default: "blue" | "red" | "green"
9mpl.rcParams["lines.markeredgecolor"] = "black"  # default: "black | "blue" | "red" | "green"

lines.*オプションで、線やマーカーの設定を変更できます。 lines.markerで、マーカーの形状を変更できます。

lines.markerの値

マーカーの形状

“o”

○:円

“s”

□:四角

“^”

△:三角

“D”

◆:ダイヤ

“x”

✕:バツ

“+”

+:プラス

“*”

★:星

凡例設定したい

1# 凡例の設定
2mpl.rcParams["legend.fontsize"] = 10         # default: "large" | "medium" | "small" | 10
3mpl.rcParams["legend.title_fontsize"] = 12   # default: "large" | "medium" | "small" | 12
4mpl.rcParams["legend.title_fontweight"] = "bold"  # default: "normal" | "bold"
5mpl.rcParams["legend.title_color"] = "blue"  # default: "black" | "blue" | "red" | "green"

legend.*オプションで、凡例の設定を変更できます。

論文したい

 1import matplotlib as mpl
 2
 3mpl.rcParams["axes.unicode_minus"] = False
 4mpl.rcParams["figure.figsize"] = (3.5, 2.5)  # 2カラムの論文に適したサイズ
 5mpl.rcParams["figure.dpi"] = 300             # 論文用の高解像度
 6mpl.rcParams["font.family"] = ["Noto Serif CJK JP", "serif"]  # 論文に適したセリフ体
 7mpl.rcParams["font.size"] = 10               # 論文に適したフォントサイズ
 8mpl.rcParams["axes.titlesize"] = 12          # 論文に適した軸タイトルサイズ
 9mpl.rcParams["axes.labelsize"] = 10          # 論文に適した軸ラベルサイズ
10mpl.rcParams["axes.grid"] = False                # 論文ではグリッド線を非表示にすることが多い
11mpl.rcParams["lines.linewidth"] = 1.0           # 論文に適した線の太さ
12mpl.rcParams["lines.markersize"] = 4.0           # 論文に適したマーカーの大きさ
13mpl.rcParams["legend.fontsize"] = 8            # 論文に適した凡例のフォントサイズ

2カラムの論文に適したサイズや、解像度、フォントなどを設定する例です。 フォントは明朝体(セリフ体)にして、グリッド線は非表示にしています。

プレゼンしたい

 1import matplotlib as mpl
 2
 3mpl.rcParams["axes.unicode_minus"] = False
 4# mpl.rcParams["figure.figsize"] = (8, 6)  # 4:3スライド
 5mpl.rcParams["figure.figsize"] = (8, 4.5)  # 16:9スライド
 6mpl.rcParams["figure.dpi"] = 150           # プレゼン用の解像度
 7mpl.rcParams["font.family"] = ["Noto Sans CJK JP", "sans-serif"]  # プレゼンに適したサンセリフ体
 8mpl.rcParams["font.size"] = 18             # プレゼンに適したフォントサイズ
 9mpl.rcParams["axes.titlesize"] = 20        # プレゼンに適した軸タイトルサイズ
10mpl.rcParams["axes.labelsize"] = 18        # プレゼンに適した軸ラベルサイズ
11mpl.rcParams["axes.grid"] = True                # プレゼンではグリッド線を表示することが多い
12mpl.rcParams["lines.linewidth"] = 3.0           # プレゼンに適した線の太さ
13mpl.rcParams["lines.markersize"] = 8.0           # プレゼンに適したマーカーの大きさ
14mpl.rcParams["legend.fontsize"] = 14            # プレゼンに適した凡例のフォントサイズ

プレゼン資料に適したサイズや、解像度、フォントなどを設定する例です。 スライドのアスペクト比に合わせて、キャンバスのサイズを変更しています。 フォントはゴシック体(サンセリフ体)にして、グリッド線は表示するようにしています。

ダッシュボードしたい

 1import matplotlib as mpl
 2
 3mpl.rcParams["axes.unicode_minus"] = False
 4mpl.rcParams["figure.figsize"] = (8, 4)  # 少し横長
 5mpl.rcParams["figure.dpi"] = 150         # ダッシュボード用の解像度
 6mpl.rcParams["font.family"] = ["Noto Sans CJK JP", "sans-serif"]  # サンセリフ体
 7mpl.rcParams["font.size"] = 11
 8mpl.rcParams["axes.grid"] = True         # グリッド線を表示
 9mpl.rcParams["axes.linestyle"] = ":"     # グリッド線を点線
10mpl.rcParams["legend.frameon"] = False   # 凡例の枠線を消す

ダッシュボード用のスタイルの例です。 ウェブ埋め込みに適したサイズや、解像度、フォントなどを設定します。

リファレンス