2012-11-08 82 views
1

我想一個BrokenBarHCollection添加到多個軸線上我的身影,具體如下:將集合添加到多個軸?

barcollection = collections.BrokenBarHCollection(... 
ax1 = plt.subplot(211) 
ax1.add_collection(barcollection) 
ax2 = plt.subplot(212) 
ax2.add_collection(barcollection) 
plt.show() 

由於是,圖中只表示在第二個插曲集合。如果我將ax2.add行註釋掉,它僅在第一個子圖中顯示集合。在第3行和第4行之間再次聲明barcollection使其顯示在兩個子圖中。這是爲什麼發生?

回答

2

這是因爲matplotlib對象知道它們連接到哪個圖並且不會附加到多個圖上。

如果使用copy module進行淺拷貝,則可以跨多個軸重新使用大部分數據結構。

import copy 
bc2 = copy.copy(barcollection) 
ax2.add_collection(bc2) 

最近還有另一個問題,但我很難找到它。