LoginSignup
0
3

More than 3 years have passed since last update.

phthonで背景図、コンター図、ベクトル図を重ね合わせ

Posted at

やりたいこと

pythonで、背景図・コンター図・ベクトル図・カラープロット図の4種類の図を重ね合わせます。背景図はshpファイル、コンター図、ベクトル図、カラープロット図はいずれも2次元グリッドデータを用います。

背景図

背景図の読み込み、描画はgeopandasで簡単にできます。なお、geopandasをpipでインストールする際は、先にGDAL、Fionaをインストールしておかないとうまくいきませんでした。

import geopandas as gpd
import matplotlib.pyplot as plt
fig, ax = plt.subplots() 
#--1.背景図描画-------------------
shapefile='line.shp'
data = gpd.read_file(shapefile)
ax.set_xlim([-100000,0])
ax.set_ylim([-120000,-60000])
data.plot(ax=ax, color='black')
#-------------------------------
plt.show()

カラーコンター図

メッシュデータを読み込み、pcolormeshでカラーコンターを描画します。カラーコンターの上から、上記の背景図に重ねます。

import geopandas as gpd
import matplotlib.pyplot as plt
from matplotlib.colors import Normalize
import numpy as np
from matplotlib.cm import ScalarMappable
#
# (データ読み込み⇒X,Y,Z):省略
fig, ax = plt.subplots() 
#--2.カラーメッシュ描画-------------------------------
fig, ax = plt.subplots() 
norm = Normalize(vmin=-500,vmax=2000)
map  = ax.pcolormesh(X,Y,Z, cmap='rainbow', norm=norm)
#
sm   = ScalarMappable(cmap='rainbow', norm=norm)
sm.set_clim(-500,2000)
pp   = fig.colorbar(sm,orientation='horizontal')
#----------------------------------------------------
#1.背景図描画:同上・省略
plt.show()

コンター図

上記のメッシュデータからコンター図を作成し、重ねて表示します。

# (モジュールインポート):同上・省略
# (データ読み込み⇒X,Y,Z):省略
fig, ax = plt.subplots() 
#2.カラーメッシュ描画:同上・省略
#--3.コンター図描画-----------------------------------
cont=ax.contour(X,Y,Z, 100, colors=['purple'])
#----------------------------------------------------
#1.背景図描画:同上・省略
plt.show()

ベクトル図

最後にベクトル図を重ねます。ベクトルは、地形の勾配としました。

# (モジュールインポート):同上・省略
# (データ読み込み⇒X,Y,Z):省略
fig, ax = plt.subplots() 
#2.カラーメッシュ描画:同上・省略
#3.コンター図描画:同上・省略
cont=ax.contour(X,Y,Z, 100, colors=['purple'])
#--4.ベクトル図描画-----------------------------------
# (ベクトル定義⇒U,V):省略
vect=ax.quiver(X,Y,U,V,color='grey',angles='xy',scale_units='xy', scale=0.0001)
ax.quiverkey(vect,0.0,1.1,1.0,'slope')
#----------------------------------------------------
#1.背景図描画:同上・省略
plt.show()
0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3