大きな2つの軸のパネルがあり、大きいものの中に小さいもの(灰色)があります(白色)。Matplotlib:別のAxesパネルの上に線をオーバープロットする
次のコードでは、青色の線が灰色の小さな軸のパネルの上にあることを期待しています。青い線は、非常に高いzorder
に設定されています。しかしそれは事実ではないことが分かります。
小さなパネルのパッチのzorder
を変更しても効果はありません。
私は透明で(またはそれを不可視に)するために、小さなパネルの背景を設定した場合、それが必要とされる状況があるかもしれないので、それから、青い線がブロックされていない表示されますが、この解決策は満足のいくものではないが小さなパネルの背景を不透明に保つ。
このような要件は簡単な方法では達成できません。実装すると、zorder
の行は同じ軸内でのみ意味がありますか?
f = figure()
ax1 = f.add_axes([0.1,0.1,0.8,0.8], zorder=1)
ax2 = f.add_axes([0.3,0.2,0.5,0.4], zorder=2)
ax2.patch.set_facecolor('gray')
ax2.patch.set_zorder(-9999999)
ax1.plot([0,1], [0,1], zorder=99999999, color='blue')
ax2.plot([0,1], [0,3], zorder=-99999, color='red')
# New Edit:
# To make the problem more to the point, what if someone
# also wants the background of the big panel to be green
# (with the following command)? See the second figure.
ax1.patch.set_facecolor('green')
# This seems to mean that the small panel really has to
# somehow "insert" into the z-space between the big panel
# and the blue line.
はい、これは非常に巧妙なソリューションです!そして、私はそれがまだ理想的ではないことに同意します。特に、厄介な人が大きなパネルの背景色を非白色(例えば緑色)に設定したい場合は、 – FJDU
は前の投稿を編集しました。これはあなたを稼働させるはずです。 – Logic1
はい、ソリューションは機能しますが、大きなパネルを緑色にする必要がある場合は、図形のfacecolorがパネルだけでなく図形全体を緑色にします。 – FJDU