2

我正在尝试将 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 使其显示在两个子图中。为什么会这样?

4

1 回答 1

3

这是因为matplotlib对象知道它们附加到什么地块,并且不会附加到多个地块。

如果您使用复制模块进行浅复制,那么您可以跨多个轴重用大部分数据结构。

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

最近还有一个关于这个的问题,但我很难找到它。

于 2012-11-09T02:21:33.357 回答