web-dev-qa-db-ja.com

matplotlib:AttributeError: 'AxesSubplot'オブジェクトには属性 'add_axes'がありません

次の属性エラーの修正方法が正確にわからない:

AttributeError: 'AxesSubplot' object has no attribute 'add_axes'

問題のある問題は、プロットの設定方法に関連しているようです。

gridspec_layout = gridspec.GridSpec(3,3)
pyplot_2 = fig.add_subplot(gridspec_layout[2])

ax = WCSAxes(fig, [0.1, 0.1, 0.8, 0.8], wcs=wcs)
pyplot_2.add_axes(ax)

誰もこれを解決する方法を知っていますか?どうもありがとう。

7
user3125347

あなたの質問にはあまり詳細はありませんが、推測します。エラーは一目瞭然です。 add_axespyplot_2オブジェクトであり、pyplot_2メソッドが定義されていないため、matplotlib.axes.AxesSubplotadd_axesにすることはできません。

matplotlib.figure.Figureオブジェクトのみにadd_axesメソッドが定義されています。

WCSAxesの公式ドキュメントを短い閲覧から得たものから、推奨されるアプローチは次のようになります。

wcs = astropy.wcs.WCS(....)
fig = matplotlib.pyplot.figure()
pyplot_2 = fig.add_subplot(gridspec_layout[2], projection=wcs)
3
ljetibo

matplotlibを古いバージョンにダウングレードするだけで役立ちます。 1.4.0にダウングレードすると、問題が修正されます。

0
coldestlin

Set_prop_cycleを使用する必要があります。つまり、ax.set_prop_cycle(color=['red', 'green', 'blue'])

Axes.set_color_cycle(clist)は、バージョン1.5以降、減価償却されました。

https://matplotlib.org/3.1.0/api/_as_gen/matplotlib.axes.Axes.set_prop_cycle.html

0
The Puternerd