Matplotlib スクリプト集

Matplotlib と Pandas によるプロット生成の例をまとめます。

    Loading...

## 論文スタイル

データファイル (txtcsv, tsv など) から、オーソドックスな見た目のプロットを生成する例です。

実行
python plot.py <filename> --save=[True|False]

この例では、指数表記を a×10ba \times 10^b スタイルで表示します。

plot.py
import matplotlib.pyplot as plt
import matplotlib.ticker as ptick
import pandas as pd
import argparse as ap

def main():
  args = get_args()
  df = get_data()
  exec_plot(df, args)

# コマンドライン引数
def get_args():
  parser = ap.ArgumentParser()
  parser.add_argument("filename", type=str)                # ファイル名
  parser.add_argument("--save", type=bool, default=True)   # 画像保存の有無
  args = parser.parse_args()
  return args

# データファイルから DataFrame を生成
def get_data(args):
  df = pd.read_csv(args.filename, comment='#', header=None, sep='\t', encoding="utf-8", engine="python")
  return df

# プロット実行
def exec_plot(df, args):
  plt.rcParams['font.family'] = 'Times New Roman'   # フォント
  plt.rcParams['mathtext.fontset'] = 'cm'           # 数式フォント
  plt.rcParams["font.size"] = 16                    # フォントサイズ
  plt.rcParams['xtick.labelsize'] = 14              # x軸のフォントサイズ
  plt.rcParams['ytick.labelsize'] = 14              # y軸のフォントサイズ
  plt.rcParams['axes.linewidth'] = 1.0              # サブプロットの囲み枠の太さ
  plt.rcParams['axes.grid'] = True                  # Grid の有無
  plt.rcParams["legend.fancybox"] = False           # 角丸

  # figure と axis の追加
  fig = plt.figure(figsize=(8, 8))
  ax = fig.add_subplot(1, 1, 1)

  # 指数表記を a * 10^b に変更
  ax.xaxis.set_major_formatter(ptick.ScalarFormatter(useMathText=True))
  ax.yaxis.set_major_formatter(ptick.ScalarFormatter(useMathText=True))
  ax.ticklabel_format(style='sci', axis='both')

  # 軸ラベル(r"$formula$" で TeX が使える)
  ax.set_xlabel(r"$x$")
  ax.set_ylabel(r"$y$")

  # プロット
  ax.plot(df["Coordinate"], df["Energy"], color="red")
  ax.scatter(df["Coordinate"], df["Energy"], color="red")

  # 画像の保存
  if (args.save):
    fig.savefig(f'{args.filename}.png', bbox_inches="tight", pad_inches=0.05)

  # 表示
  plt.show()


# 実行
if "__name__" == "__main__":
    main()

### 参考

Matplotlibで綺麗な論文用のグラフを作る - Qiita
はじめに論文をここ数ヶ月間書いていました。。おかげさまでいろいろ手がつかず、モデルベース強化学習系の勉強もしたかったのですがとにかく大変でした。さくさくかけるドクターの方々に尊敬しかありません。…
Matplotlibで綺麗な論文用のグラフを作る - Qiita favicon qiita.com
Matplotlibで綺麗な論文用のグラフを作る - Qiita
MatplotlibのY軸の目盛りを指数表記(10のN乗表記)に変更する - Qiita
##ex1)グラフを描画するimport sqlalchemyimport pandas as pdimport matplotlib.pyplot as plt# SQLAlchemy初期…
MatplotlibのY軸の目盛りを指数表記(10のN乗表記)に変更する - Qiita favicon qiita.com
MatplotlibのY軸の目盛りを指数表記(10のN乗表記)に変更する - Qiita

Discussions

記事がありません