PythonのSciencePlotsを用いることでNatureやIEEEの規定に従ったグラフを簡単に作成することができます。
本記事では、SciencePlotsの使い方を簡単に紹介します。
導入方法
まずは、以下のコマンドを実行してインストールしてください。
pip install SciencePlots
次に、以下を実行してLaTeX環境をインストールしてください(既にインストールしてある方は、不要です)
sudo apt-get install dvipng texlive-latex-extra texlive-fonts-recommended cm-super
既にLaTeXをインストールしてある方は、パスが通っているかを確認してください。
どうしてもLaTeXをインストールできない場合は、本記事後半に対処法を説明します。
Google Colabで使用したい方は、LaTeXを使用することができないので(現時点の私の理解)、このプロセスを飛ばしてください。
後に対処法を紹介します。
SciencePlotsの使い方
matplotlibのスタイル変更と同様に、以下のようにスタイルを指定する(IEEEが具体例)。
# スタイルを指定,
plt.style.use(["science", "ieee"])
xs = np.linspace(-2, 2, 100)
y1 = xs
y2 = np.tanh(0.5*xs)
y3 = np.tanh(xs)
y4 = np.tanh(1.5*xs)
fig, ax = plt.subplots()
ax.plot(xs, y1, label=r"$x$")
ax.plot(xs, y2, label=r"$\tanh(0.5x)$")
ax.plot(xs, y3, label=r"$\tanh(1.0x)$")
ax.plot(xs, y4, label=r"$\tanh(1.5x)$")
ax.set_xlabel(r"$x$")
ax.set_ylabel(r"$y$")
ax.legend()
fig.show()
<output>
スタイルを『nature』にすれば、Nature規定の図を簡単に作成できます。
# スタイルを指定,
plt.style.use(["science", "nature"])
xs = np.linspace(-2, 2, 100)
y1 = xs
y2 = np.tanh(0.5*xs)
y3 = np.tanh(xs)
y4 = np.tanh(1.5*xs)
fig, ax = plt.subplots()
ax.plot(xs, y1, label=r"$x$")
ax.plot(xs, y2, label=r"$\tanh(0.5x)$")
ax.plot(xs, y3, label=r"$\tanh(1.0x)$")
ax.plot(xs, y4, label=r"$\tanh(1.5x)$")
ax.set_xlabel(r"$x$")
ax.set_ylabel(r"$y$")
ax.legend()
fig.show()
<output>
それ以外のスタイルについて知りたい方は、『SciencePlots-Gallary』を参考にしてください。
Google ColabでIEEEやNatureスタイルを使用する場合は、スタイルを以下のように指定してください。
# IEEEの場合
plt.style.use(["science", "ieee", "no-latex"])
# Natureの場合
plt.style.use(["science", "nature", "no-latex"])
それ以外のスタイルも『no-latex』を付ければ使用できます。
また、latexをローカルにインストールしたくない方も同様の方法で使用することができます!
参考資料
参考リンク
他のmatplotlib+論文に関する記事
まとめ
本記事では、matplotlibを用いて論文用のグラフを簡単に作成する『SciencePlots』というスタイルの使い方を紹介しました。
Pythonを学習するのに効率的なサービスを紹介していきます。
まず最初におすすめするのは、Udemyです。
Udemyは、Pythonに特化した授業がたくさんあり、どの授業も良質です。
また、セール中は1500円定義で利用することができ、コスパも最強です。
下記の記事では、実際に私が15個以上の講義を受講して特におすすめだった講義を紹介しています。
他のPythonに特化したオンライン・オフラインスクールも下記の記事でまとめています。
自分の学習スタイルに合わせて最適なものを選びましょう。
また、私がPythonを学ぶ際に使用した本を全て暴露しているので参考にしてください。