Python Matplotlib:重复使用Line2D会导致线偏移

Python Matplotlib:重复使用Line2D会导致线偏移,python,matplotlib,reusability,Python,Matplotlib,Reusability,在Matplotlib中,当我尝试在另一个图形中重复使用Line2D艺术家时,会出现奇怪的行为:在第二个图形中,艺术家是偏移的 我是做错了什么还是这是一个错误?如果是这样的话,有没有快速的方法来避免这种情况 我将问题归结为以下代码: import matplotlib.pyplot as pyplt import numpy as np xs=np.arange(10) ys=np.arange(10) line=pyplt.Line2D(xs,ys,color="red",linewidth

在Matplotlib中,当我尝试在另一个图形中重复使用Line2D艺术家时,会出现奇怪的行为:在第二个图形中,艺术家是偏移的

我是做错了什么还是这是一个错误?如果是这样的话,有没有快速的方法来避免这种情况

我将问题归结为以下代码:

import matplotlib.pyplot as pyplt
import numpy as np

xs=np.arange(10)
ys=np.arange(10)
line=pyplt.Line2D(xs,ys,color="red",linewidth=1)

print "IN THIS FIRST FIGURE, line LOOKS JUST FINE"
figure1 = pyplt.figure()
axes1 = figure1.add_subplot(111)
axes1.add_artist(line)
pyplt.show()
pyplt.close('all')

print "BUT WHEN I REUSE line IN ANOTHER FIGURE, IT IS OFFSET"
figure2 = pyplt.figure()
axes2 = figure2.add_subplot(111)
axes2.add_artist(line)
pyplt.show()
pyplt.close('all')

图片在,但我没有声誉发布它。

当你把一个艺术家添加到一个轴上时,它会从轴上获取大量细节,例如用于从数据空间->屏幕空间获取的变换堆栈


因此,您不能在多个图形/轴中重复使用艺术家。原则上,您可以移动他们,但这将涉及到触摸内脏。再画一次。

好的,谢谢。我正在运行Matplotlib的1.3版。我在版本说明中看到1.3.1包含了一个修正:从一个子地块到另一个子地块的绘制线现在可以工作了,所以这可能解决了这个问题。我会更新和检查。