3

デカルト プロットに重ねられた極座標プロットの要素の zorder を制御するのが困難です。

次の例を検討してください。

import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_subplot(111)
ax.scatter(1, 1, marker='*', s=2000, c='r', zorder=2)
ax2 = fig.add_axes(ax.get_position(), frameon=False, polar=True)
ax2.scatter(1., 0.1, marker='*', s=1000, c='b', zorder=1)
plt.xlim(0, 2)
plt.ylim(0, 2)
plt.show()

結果は次のとおりです。 ここに画像の説明を入力

散布図をmatplotlib無視したようです。zorder赤い星が青い星の上にあると思います。

ここで私が間違っていることを説明していただけますか?

これは私のものと似ていますが、代わりにティックラインとグリッドに関係しています。もしかして同じバグ?

PS私はPython 2.7.6とmatplotlib 1.3.1でLinux x86_64を実行しています。

4

1 に答える 1

3

問題は、異なる軸上のマークの z オーダーを設定していることですがaxax2よりax2大きな z オーダーがあるため、その中のすべてのプロットが の上になりますax。1つの解決策は、より高いzオーダーを設定することですaxが、背景を透明にするか設定する必要がありますframeon=False(これはおそらくあなたのケースでは望ましくありません)。これは私が言っていることのデモンストレーションです:

import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_subplot(111)

ax.scatter(1, 1, marker='*', s=2000, c='r', zorder=2)

ax2 = fig.add_axes(ax.get_position(), frameon=False, polar=True)
ax2.scatter(1., 0.1, marker='*', s=1000, c='b', zorder=1)

ax.set_zorder(3)
ax.patch.set_facecolor('none')
#ax.patch.set_visible(False)

plt.xlim(0, 2)
plt.ylim(0, 2)
plt.show()

プロット:

ここに画像の説明を入力

于 2014-02-25T16:46:15.227 に答える