4
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

Matplolibのカスタマイズに役立つリンク

Matplotlibで3dplotのグラフを書く際に、Defaultの設定のままだとなかなか綺麗に書けなかったので、いくつかカスタマイズの方法を調べました。
その中で役立ったリンク先をご紹介します。

3dplot(surface)の色のカスタマイズ

理想気体の関係を3dplotしてみます。PV=RTで、PをZ軸として描画します。
・色を指定しない場合

PVT.py
ax.plot_surface(v, T, P, rstride=2, cstride=2)

MatplotlibNoColor.PNG

surfaceの色のカスタマイズについて

Color Map参照
上記のリンクを参考に色を変更しています。
以下のように、実際に色とコードが目で見て確認できるのが良いですね。
ColorEX.PNG

どうやら値の大小に応じて色が左端から右端にかけて連続的に変わるようです。
個人的な好みとして暗い色は好きではないので、GnBuで緑色から青色に変化するように設定します。
設定の仕方は簡単で、先ほどのコードにcmap=cm.GnBuを追加するだけです。
好みに応じてGnBuの部分を変更してください。

PVT.py
ax.plot_surface(v, T, P, rstride=2, cstride=2, cmap=cm.GnBu)

ColorChange.PNG

色は好みに近づいてきましたが、メッシュが黒で太いためか、どうもまだ見えにくい感じです。

メッシュのラインサイズ変更

調べた所、以下のリンクにラインサイズの変更方法が載っていました。
ラインサイズ変更
linewidth=xx(xxはラインサイズ)を追加すればよいだけのようです。
ラインサイズを0.1等小さい値にすると、以下のような形になります。

PVT.py
ax.plot_surface(v, T, P, rstride=2, cstride=2, cmap=cm.GnBu,linewidth=0.1)

LineChange.PNG

私の個人的な好みですが、大分私好みのグラフに近づきました。

おまけ(グラフのタイトル、凡例について)

ちなみに、グラフのX,Y,Z軸の凡例やタイトルの入力は以下リンクを参照しました。
タイトル、凡例
上記の例ですと、以下のように記載しています。

PVT.py
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で書いています)
IdealActual.PNG

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
4
Help us understand the problem. What are the problem?