#author("2021-02-05T18:55:55+09:00","default:Miyashita","Miyashita") #author("2021-02-05T18:57:19+09:00","default:Miyashita","Miyashita") *matplotlib メモ書き [#xee4b1fd] ***はじめに [#x31bb883] インポートとエイリアスを下記のように設定. #codeprettify(lang-python){{ import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D }} 根本的な仕組みの理解については,~ -[[早く知っておきたかったmatplotlibの基礎知識、あるいは見た目の調整が捗るArtistの話 - Qiita>https://qiita.com/skotaro/items/08dc0b8c5704c94eafb9]]~ を参考にさせていただきました.~ ここでは,下記のように Figure, Axes のインスタンスを生成させるようにし,オブジェクト指向的な書き方と MATLAB 的な書き方を両方記しているものもある. #codeprettify(lang-python){{ fig = plt.figure() ax = fig.add_subplot(111) }} ***Figureのサイズ(大きさ)調整 [#hbce96fa] #codeprettify(lang-python){{ fig = plt.figure(figsize=(hor,ver)) }} デフォルトはfigsize=(8, 6).800x600 ピクセルという単位(横x縦).~ ***目盛ラベル位置 [#t720bed8] 現在の目盛位置を取得するには(x軸の場合) #codeprettify(lang-python){{ ax.get_xticks() }} 目盛位置と目盛ラベルを指定するには,float 型のリスト ticks,文字列のリスト labels という変数があるとして #codeprettify(lang-python){{ plt.xticks(ticks, labels) # MATLAB的な書き方 }} #codeprettify(lang-python){{ ax.xaxis.set_ticks(ticks) # メソッドを使用, オブジェクト指向っぽい書き方 ax.xaxis.set_ticklabels(labels) }} ***目盛長さ [#c7193478] 下記は x, y 軸の目盛を消す処理.ラベルはそのまま. #codeprettify(lang-python){{ ax.tick_params(axis='both', length=0.0) }} ***軸ラベル [#mdfc9d36] fontdict と fontname という指定方法がある. #codeprettify(lang-python){{ plt.xlabel('x-axis',fontsize=12,fontdict={"name":"serif"}) # MATLAB的な書き方&辞書型 plt.ylabel('y-axis',fontsize=12,fontname='serif') }} #codeprettify(lang-python){{ ax.set_xlabel(...) # オブジェクト指向っぽい書き方 ax.set_ylabel(...) }} ***軸の向きを逆に [#o4913f7f] y軸の向きを逆にする例. #codeprettify(lang-python){{ ax.invert_yaxis() }} ***colorbar [#d68e2780] #codeprettify(lang-python){{ fig = plt.figure() ax = fig.add_subplot(111) pc = ax.pcolor(X, Y, Z) pc.set_clim(0.,15.) ax.axis('scaled') cbar = fig.colorbar(pc) cbar = fig.colorbar(pc, ticks=np.linspace(0.,15.,7)) cbar.ax.set_ylabel('colorbar hogehoge') }}