matplotlib グラフ軸設定
ポイント
この事例では、plt.gca().set_aspect('equal',adjustable='box')
により縦軸と横軸のスケールをあわせています。
下記サンプル画像を参照して、
- subplot(131):軸設定はデフォルト。目盛数値表示箇所にグリッドが入っています。
- subplot(132):グリッドを細かく入れた場合のサンプル。
- subplot(133):下と左の軸のみを描画したもの。FEMのメッシュ図や説明図作成時などに使います。
全ての軸を描画しないならば以下でOK。
plt.axis('off')
グラフ軸設定サンプル画像
プログラム
# Sample of axes setting import numpy as np import matplotlib.pyplot as plt import matplotlib.ticker as tick def main(): fsz=10 xmin=0 ; xmax=15; dx=5 ymin=60; ymax=85; dy=5 plt.figure(figsize=(10,5),facecolor='w') plt.rcParams['font.size']=fsz plt.rcParams['font.family']='sans-serif' tstr='subplot(131)' plt.subplot(131) plt.xlim([xmin,xmax]) plt.ylim([ymin,ymax]) plt.xlabel('x_axis') plt.ylabel('y_axis') plt.xticks(np.arange(xmin,xmax+dx,dx)) plt.yticks(np.arange(ymin,ymax+dy,dy)) plt.grid(color='#999999',linestyle='solid') plt.gca().set_aspect('equal',adjustable='box') plt.title(tstr,loc='left',fontsize=fsz) tstr='subplot(132)' plt.subplot(132) plt.xlim([xmin,xmax]) plt.ylim([ymin,ymax]) plt.xlabel('x_axis') plt.ylabel('y_axis') plt.xticks(np.arange(xmin,xmax+dx,dx)) plt.yticks(np.arange(ymin,ymax+dy,dy)) plt.gca().xaxis.set_minor_locator(tick.MultipleLocator(1.0)) plt.gca().yaxis.set_minor_locator(tick.MultipleLocator(1.0)) plt.grid(which='both',color='#999999',linestyle='solid') plt.gca().set_aspect('equal',adjustable='box') plt.title(tstr,loc='left',fontsize=fsz) tstr='subplot(133)' plt.subplot(133) plt.xlim([xmin,xmax]) plt.ylim([ymin,ymax]) plt.xlabel('x_axis') plt.ylabel('y_axis') plt.xticks(np.arange(xmin,xmax+dx,dx)) plt.yticks(np.arange(ymin,ymax+dy,dy)) plt.gca().spines['right'].set_visible(False) plt.gca().spines['top'].set_visible(False) plt.gca().yaxis.set_ticks_position('left') plt.gca().xaxis.set_ticks_position('bottom') plt.gca().set_aspect('equal',adjustable='box') plt.title(tstr,loc='center',fontsize=fsz) plt.tight_layout() fnameF='fig_axis.jpg' plt.savefig(fnameF, dpi=100, bbox_inches="tight", pad_inches=0.1) plt.show() #--------------- # Execute #--------------- if __name__ == '__main__': main()