2016-08-09 4 views
1

ビットは、と私は明らかに何かが欠けているんだけど、私はいくつかの本当に奇妙な行動を取得しています、と私は私が間違ってやっているうちに動作することはできません - サブプロットした円を追加します。matplotlibの。奇数1の発行/混乱

私は(この記事のために、私はちょうど2×2のグリッドを言うよ)グリッド形式でサブプロットとプロットを持っています。私はそれぞれの上にいくつかのものをプロットし、円を追加したい。簡単なはずですが、私が期待しているとおりに動作していません。

コード例1:

import matplotlib.pyplot as plt 

x = [ -1.0, -0.5, 0.0, 0.5, 1.0 ] 
y = [ 0.7, 0.2, 1.0, 0.0, 0.0 ] 

circle = plt.Circle((0, 0), 1) 

fig, axes = plt.subplots(2, 2) 

axes[ 0, 0 ].plot(x, y) 
axes[ 1, 1 ].plot(x, y) 

axes[ 0, 0 ].add_patch(circle) 
axes[ 1, 1 ].add_patch(circle) 

plt.show() 

出力1:

Output 1

コード例2:

import matplotlib.pyplot as plt 

x = [ -1.0, -0.5, 0.0, 0.5, 1.0 ] 
y = [ 0.7, 0.2, 1.0, 0.0, 0.0 ] 

circle = plt.Circle((0, 0), 1) 

fig, axes = plt.subplots(2, 2) 

axes[ 0, 0 ].plot(x, y) 
axes[ 1, 1 ].plot(x, y) 

axes[ 0, 0 ].add_patch(circle) 
#axes[ 1, 1 ].add_patch(circle) 

plt.show() 

出力2:

Output 2

コード例3:

import matplotlib.pyplot as plt 

x = [ -1.0, -0.5, 0.0, 0.5, 1.0 ] 
y = [ 0.7, 0.2, 1.0, 0.0, 0.0 ] 

circle = plt.Circle((0, 0), 1) 

fig, axes = plt.subplots(2, 2) 

axes[ 0, 0 ].plot(x, y) 
axes[ 1, 1 ].plot(x, y) 

#axes[ 0, 0 ].add_patch(circle) 
axes[ 1, 1 ].add_patch(circle) 

plt.show() 

出力3:
Output 3

私は本当にこの動作を理解していない(?なぜ例2の作業ではなく、1または3)、または何私はそれを引き起こすためにやっている。誰か光を当てることはできますか?前もって感謝します。あなたは、私はそれが問題を作成していると思う二つの異なるパッチの同じ「円」のプロットを使用している

答えて

3

、それは誤り

は軸をリセットすることはできませんがスローされます。おそらく、これが問題だった、あなたがサブプロットごとに異なる円を作成する必要が

がサポートされていない複数の軸での再利用、アーティストに

import matplotlib.pyplot as plt 

x = [ -1.0, -0.5, 0.0, 0.5, 1.0 ] 
y = [ 0.7, 0.2, 1.0, 0.0, 0.0 ] 

circle1 = plt.Circle((0, 0), 1) 
circle2 = plt.Circle((0, 0), 1) 

fig, axes = plt.subplots(2, 2) 

axes[ 0, 0 ].plot(x, y) 
axes[ 1, 1 ].plot(x, y) 

axes[ 0, 0 ].add_patch(circle1) 
axes[ 1, 1 ].add_patch(circle2) 

plt.show() 
+0

に感謝しようとしていますあなた:)私は円の作成をサブプロットループとボイルラー、サークルに移動しました。乾杯:) – Steve