matplotlibのレイアウトを調節したのでそのメモ
#レイアウト調整 `plt.rcParams["調整したいパラメータ"] = (値)`でデフォルト設定をオーバーライドできる ##import ```python import numpy as np import matplotlib.pyplot as plt ``` ##図の大枠に関する設定 ```python plt.rcParams["figure.figsize"] = [6.4,4.0] # 図の縦横のサイズ([横(inch),縦(inch)]) plt.rcParams["figure.dpi"] = 150 # dpi(dots per inch) plt.rcParams["figure.autolayout"] = False # レイアウトの自動調整を利用するかどうか plt.rcParams["figure.subplot.left"] = 0.14 # 余白 plt.rcParams["figure.subplot.bottom"] = 0.14# 余白 plt.rcParams["figure.subplot.right"] =0.90 # 余白 plt.rcParams["figure.subplot.top"] = 0.91 # 余白 plt.rcParams["figure.subplot.wspace"] = 0.20# 図が複数枚ある時の左右との余白 plt.rcParams["figure.subplot.hspace"] = 0.20# 図が複数枚ある時の上下との余白 ``` ##フォントの設定 ```python plt.rcParams["font.family"] = "serif" # 使用するフォント plt.rcParams["font.serif"] = "Times New Roman" plt.rcParams["font.size"] = 14 # 基本となるフォントの大きさ plt.rcParams["mathtext.cal"] = "serif" # TeX表記に関するフォント設定 plt.rcParams["mathtext.rm"] = "serif" # TeX表記に関するフォント設定 plt.rcParams["mathtext.it"] = "serif:italic"# TeX表記に関するフォント設定 plt.rcParams["mathtext.bf"] = "serif:bold" # TeX表記に関するフォント設定 plt.rcParams["mathtext.fontset"] = "cm" # TeX表記に関するフォント設定 ``` TeXに関する設定項目がよくわからないけどまぁ動いてるからヨシ! ##メモリ線の設定 ```python plt.rcParams["xtick.direction"] = "in" # 目盛り線の向き、内側"in"か外側"out"かその両方"inout"か plt.rcParams["ytick.direction"] = "in" # 目盛り線の向き、内側"in"か外側"out"かその両方"inout"か plt.rcParams["xtick.top"] = True # 上部に目盛り線を描くかどうか plt.rcParams["xtick.bottom"] = True # 下部に目盛り線を描くかどうか plt.rcParams["ytick.left"] = True # 左部に目盛り線を描くかどうか plt.rcParams["ytick.right"] = True # 右部に目盛り線を描くかどうか plt.rcParams["xtick.major.size"] = 4.0 # x軸主目盛り線の長さ plt.rcParams["ytick.major.size"] = 4.0 # y軸主目盛り線の長さ plt.rcParams["xtick.major.width"] = 1.0 # x軸主目盛り線の線幅 plt.rcParams["ytick.major.width"] = 1.0 # y軸主目盛り線の線幅 plt.rcParams["xtick.minor.visible"] = False # x軸副目盛り線を描くかどうか plt.rcParams["ytick.minor.visible"] = False # y軸副目盛り線を描くかどうか plt.rcParams["xtick.minor.size"] = 2.0 # x軸副目盛り線の長さ plt.rcParams["ytick.minor.size"] = 2.0 # y軸副目盛り線の長さ plt.rcParams["xtick.minor.width"] = 0.6 # x軸副目盛り線の線幅 plt.rcParams["ytick.minor.width"] = 0.6 # y軸副目盛り線の線幅 plt.rcParams["xtick.labelsize"] = 14 # 目盛りのフォントサイズ plt.rcParams["ytick.labelsize"] = 14 # 目盛りのフォントサイズ ``` ##軸に関する設定 ```python plt.rcParams["axes.labelsize"] = 18 # 軸ラベルのフォントサイズ plt.rcParams["axes.linewidth"] = 1.0 # グラフ囲う線の太さ plt.rcParams["axes.grid"] = True # グリッドを表示するかどうか ``` ##グリッドに関する設定 ```python plt.rcParams["grid.color"] = "black" # グリッドの色 plt.rcParams["grid.linewidth"] = 1.0 # グリッドの線幅 ``` ##凡例に関する設定 ```python plt.rcParams["legend.loc"] = "best" # 凡例の位置、"best"でいい感じのところ plt.rcParams["legend.frameon"] = True # 凡例を囲うかどうか、Trueで囲う、Falseで囲わない plt.rcParams["legend.framealpha"] = 1.0 # 透過度、0.0から1.0の値を入れる plt.rcParams["legend.facecolor"] = "white" # 背景色 plt.rcParams["legend.edgecolor"] = "black" # 囲いの色 plt.rcParams["legend.fancybox"] = False # Trueにすると囲いの四隅が丸くなる ``` #いざ描画 ```python ## データの用意 x = np.arange(-3, 3.1, 0.1) # -3から3まで0.1刻みのnumpy配列の作成 y1 = np.sin(x) y2 = np.cos(x)fig = plt.figure(1)
ax1 = fig.add_subplot(111) # 一行一列一個目
ax1.plot(x,y1,label = "$\sin\theta$") # 描画データの追加
ax1.plot(x,y2,label = "$\cos\theta$") # 描画データの追加
ax1.set_xlim(-3,3) # 表示範囲の設定
ax1.set_ylim(-1.5,1.5) # 表示範囲の設定
ax1.set_xlabel(r"$x$ [ - ]") # 軸ラベルの設定
ax1.set_ylabel(r"$y$ [ - ]") # 軸ラベルの設定
ax1.legend() # 凡例の追加
plt.show() # 表示
#実行結果
<div align="center">
<img src="https://qiita-image-store.s3.amazonaws.com/0/328420/45dca83c-b785-074e-86b3-7910d1eb9313.png">
</div>
だいぶいい感じなったのでは?
#参考にしたサイト
- 公式ドキュメント
- [Customizing matplotlib](https://matplotlib.org/users/customizing.html)
- その他サイト
- [[Python] matplotlib: 論文用に図の体裁を整える](https://qiita.com/rnhd/items/325d21621cfe9e553c17)