Matplotlibで3dplotのグラフを書く際に、Defaultの設定のままだとなかなか綺麗に書けなかったので、いくつかカスタマイズの方法を調べました。
その中で役立ったリンク先をご紹介します。
#3dplot(surface)の色のカスタマイズ
理想気体の関係を3dplotしてみます。PV=RTで、PをZ軸として描画します。
・色を指定しない場合
ax.plot_surface(v, T, P, rstride=2, cstride=2)
##surfaceの色のカスタマイズについて
Color Map参照
上記のリンクを参考に色を変更しています。
以下のように、実際に色とコードが目で見て確認できるのが良いですね。
どうやら値の大小に応じて色が左端から右端にかけて連続的に変わるようです。
個人的な好みとして暗い色は好きではないので、GnBuで緑色から青色に変化するように設定します。
設定の仕方は簡単で、先ほどのコードにcmap=cm.GnBuを追加するだけです。
好みに応じてGnBuの部分を変更してください。
ax.plot_surface(v, T, P, rstride=2, cstride=2, cmap=cm.GnBu)
色は好みに近づいてきましたが、メッシュが黒で太いためか、どうもまだ見えにくい感じです。
##メッシュのラインサイズ変更
調べた所、以下のリンクにラインサイズの変更方法が載っていました。
ラインサイズ変更
linewidth=xx(xxはラインサイズ)を追加すればよいだけのようです。
ラインサイズを0.1等小さい値にすると、以下のような形になります。
ax.plot_surface(v, T, P, rstride=2, cstride=2, cmap=cm.GnBu,linewidth=0.1)
私の個人的な好みですが、大分私好みのグラフに近づきました。
##おまけ(グラフのタイトル、凡例について)
ちなみに、グラフのX,Y,Z軸の凡例やタイトルの入力は以下リンクを参照しました。
タイトル、凡例
上記の例ですと、以下のように記載しています。
ax.set_title('PVT')
ax.set_xlabel('v[l/mol]')
ax.set_ylabel('T[K]')
ax.set_zlabel('P[atm]')
##おまけ2(グラフの重ね書きについて)
また、グラフは重ね書きも可能なようです。
以下の例では、上記のように理想気体として取り扱った場合と、実在気体(propaneをSoave Redelich Kwong式で求めた場合です)のPVTを重ね書きしています。
(理想気体をGnBu、実在気体をYlOrRdで書いています)