matplotlibで行列プロットを作成しようとしています。matplotlib subplotに特定の軸を追加するにはどうすればいいですか?
個々のプロットは、サブモジュールPolarAxes
である特定のモジュールwindrose
で作成されます。しかし、サブプロットkwargsと呼ばれるモジュールで定義された投影はないようです。サブクラスの引数の一部が欠落しているため、標準のpolar
投影が機能しません。
私は成功しなかったいくつかのアプローチをテストしました(このポストを考慮した海軍地図でさえ:https://stackoverflow.com/a/25702476/3416205)。以下は私が試した最も近いものです。特定のWindroseAxes
に関連する新しいmatplotlib投影法を適切に作成せずに、私が望むことをする方法はありますか?
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
from windrose import WindroseAxes
df = pd.read_csv('https://raw.githubusercontent.com/AntoineGautier/Data/master/tmp.csv')
fig = plt.figure()
gs = gridspec.GridSpec(4, 2)
def wind_plot(x, y, title=None, axes=None, fig=None):
ax = WindroseAxes.from_ax()
ax.set_position(axes.get_position(fig))
ax.bar(x, y, normed=True, opening=0.8, edgecolor='white', bins=[0, 2.5, 5, 7.5, 10])
ax.set_title(title)
for (id_s, s) in enumerate(pd.unique(df.saison)):
for (id_jn, jn) in enumerate(pd.unique(df.jn)):
tmp = df.query('[email protected] & [email protected]')
_ = plt.subplot(gs[id_s, id_jn], polar=True)
wind_plot(tmp.wd, tmp.ws, title=s + ' - ' + jn, axes=_, fig=fig)
plt.show()