Pythonで2次元ヒストグラムをモルワイデ図法で描画する方法

stackoverflow.com

を参考にした。

2Dヒストグラムのbinデータを自力で用意し、pcolormesh で描画する。その方法は

pythonのmatplotlibで2次元ヒストグラム(hist2d)のビンの値を直接操作する - 物理の駅 by onsanai

で解説している。

モルワイデ図法にするコードは plt.subplot(111, projection="mollweide")

import matplotlib.pyplot as plt
import numpy as np


def f(x, y, constant, mu_x, mu_y, sigma_x, sigma_y):
    return np.exp(-((x-mu_x) ** 2) / (2 * sigma_x ** 2)) * np.exp(-((y-mu_y) ** 2) / (2 * sigma_y ** 2)) * constant


plt.figure()
plt.subplot(111, projection="mollweide")

lon = np.linspace(-np.pi, np.pi, 360)
lat = np.linspace(-np.pi/2., np.pi/2., 180)
Lon, Lat = np.meshgrid(lon, lat)
arr = f(Lon, Lat, 1, 0, 0, 0.6, 0.2)
arr += f(Lon, Lat, 0.5, 1.5, 0, 0.2, 0.2)

plt.pcolormesh(Lon, Lat, arr, cmap='Reds', shading='auto')
plt.grid(True)

plt.savefig("projection_mollweide.pdf")
plt.show()

f:id:onsanai:20201223181044p:plain
Pythonモルワイデ図法で描いた図