Python Matplotlib:重复使用Line2D会导致线偏移
在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
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包含了一个修正:从一个子地块到另一个子地块的绘制线现在可以工作了,所以这可能解决了这个问题。我会更新和检查。