Loading [MathJax]/extensions/tex2jax.js

2022年6月9日木曜日

matplotlibで方眼紙のようなグリッドを作る

Pythonのmatplotlibはグラフ描画のためのライブラリですが、描画はデータによって自動的に調整されるので、時には方眼紙のように正確なグリッドが欲しい場合もあります。

正方形の方眼紙のようなグリッドは、plt.axis("square")で正方形に、ticksでマス目を刻みます。

  1. #! /usr/bin/env python  
  2.   
  3. # -*- coding:utf-8 -*-  
  4.   
  5. import numpy as np  
  6. import matplotlib.pyplot as plt  
  7.   
  8. # 正方形で表示  
  9. plt.axis("square")  
  10.   
  11. # 表示範囲の指定  
  12. plt.xlim(-1010)  
  13. plt.ylim(-1010)  
  14.   
  15. # 値の刻み  
  16. plt.xticks(np.arange(-10115))  
  17. plt.yticks(np.arange(-10115))  
  18.   
  19. #grid マイナー線の指定をします  
  20. plt.minorticks_on()  
  21. plt.grid()  
  22. # マイナー線は破線で透明度50%  
  23. plt.grid(which="minor", color="gray", linestyle="--", alpha=0.5)  
  24.   
  25. plt.show()  
  26.    
  27.    
ポイントはaxis("square")です。これで数値通りの大きさで表示されます。
あとはxlimでX軸の、ylimでY軸のグラフの範囲、ticksで表示するメモリ数値の刻みを指定します。
グリッドの線はgrid関数で指定しますが、主線だけでなく副線も表示したい場合はminorticks_on関数を呼び出して表示します。
副線は同じgrid関数でwhich="minor"で呼び出します。
あとは"--"で破線、alphaで透明度など指定して好みの方眼紙に調整してください。



以上のようなグラフになります。


0 件のコメント:

コメントを投稿

Pythonで地図空間データを扱う⑤

ベースの地図が出来た所で、他のデータを被せてみます。 国土地理院の  500mメッシュ別将来推計人口データ  を使用します。 同じく神奈川県のデータ  500m_mesh_suikei_2018_shape_14.zip をダウンロードします。 ベースの地図データと同じ場所に展開...