35
31

More than 5 years have passed since last update.

Matplotlib 論文書くときに使ったやつメモ

Posted at

はじめに

論文を書くときにいろいろ調べたのですがまた書くときにまとめておくと楽なので
そのまとめです

参考

グラフの文字系

ここがとにかく大変でした
普通times new romanを使うので
よく言われているこれでやると

plt.rcParams['font.family'] = 'Times New Roman' #全体のフォントを設定
plt.rcParams["mathtext.fontset"] = "stix" 
plt.rcParams["font.size"] = 10
plt.rcParams['axes.linewidth'] = 1.0# 軸の線幅edge linewidth。囲みの太さ
plt.rcParams['axes.grid'] = True

この当たりかなと
でもこれだとうまくいかないときがあります
なんか太い文字になったりします

image.png

なぞだったです
いろいろ調べた結果

del matplotlib.font_manager.weight_dict['roman']
matplotlib.font_manager._rebuild()

これをimportしてるところにいれればうまくいくことが判明しました

Figure_1.png

ちょっと論文の形っぽくなりますね

あとはラベルのところ
texの書き方にならっているらしいですが

sample_fig = plt.figure()
sample_axis = sample_fig.add_subplot(111)

sample_axis.set_xlabel('$\it{x}$')

って書けばうまくいきます
斜体にするのはitが担ってくれています

ちなみにギリシャ文字等を使いたい時は

sample_fig = plt.figure()
sample_axis = sample_fig.add_subplot(111)

sample_axis.set_xlabel('$\it{x}$')
sample_axis.set_ylabel(r'$\theta$ [rad]')

という感じでrをいれてください
こうすることで,r \tが 関係ないよってことを指示してくれてます
たぶん\itのときもvisual codeで書いてると書き直してねって注意でるかもです

Figure_1.png

これでぽくなりました

目盛り系

目盛りを内側にいれる

さらにっぽくするにはメモリを内側にいれたいなってやつです

これはxtickをいじります

plt.rcParams['xtick.direction'] = 'in'#x軸の目盛線
plt.rcParams['ytick.direction'] = 'in'#y軸の目盛線

Figure_1.png

目盛りの数字をいじる

from matplotlib.ticker import MultipleLocator, FormatStrFormatter

# 前にself.axisを作成してください
self.axis.xaxis.set_major_formatter(FormatStrFormatter('%.2f'))
self.axis.yaxis.set_major_formatter(FormatStrFormatter('%.2f'))

これで0.01までの表示になります
0fとかにすると整数のみになります

目盛りの間隔をいじる

なんかあんまり使われてないですけど

plt.yticks(np.arange(-2.0, 2.0, 0.5))

これで0.5ずつとかになります
xlimとかと併用すれば,目盛りを粗くできます

グラフのサイズ系と保存

出力したやつを保存すると,なんかwindowサイズとかいじらないとでめんどくさいので
そういうときは
出力したうえで保存する

作成したタイミングで保存する

sample_fig = plt.figure(figsize=(3, 3), dpi=50)# dpiは解像度

...

plt.savefig('sample_1.png'dpi=50)# こっちのdpiは保存するときのやつ

これで保存される
ちなみにfigsizeの単位はインチらしいが

1インチ=2.54cm

だそうです
換算してやってみてください

以上で一通りはできそうです!

35
31
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
35
31