2016-08-09 62 views
1

一個奇怪的位,我顯然缺少一些東西,但我得到了一些非常奇怪的行爲,我無法弄清楚我做錯了什麼。Matplotlib;添加圓到子區域 - 問題/困惑

我有一個網格格式的子圖的陰謀(爲了這篇文章,我會說只是一個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