Python 3.x 更改matplotlib.axes中线条扩展数据的问题

Python 3.x 更改matplotlib.axes中线条扩展数据的问题,python-3.x,matplotlib,Python 3.x,Matplotlib,大家好 我想在matplotlib中更改Line2D的扩展数据,但我遇到的问题是,当我更改一行扩展数据的扩展数据时,另一行的扩展数据也会更改 例如,我们有一些数据[i][n]和一些常数k fig = Figure((5.0, 4.0), dpi=self.dpi) axes = fig.add_subplot(111) for i in range(1,len(data)): axes.plot(data[0],data[i]) lines=axes.get_lines() for j

大家好

我想在matplotlib中更改Line2D的扩展数据,但我遇到的问题是,当我更改一行扩展数据的扩展数据时,另一行的扩展数据也会更改

例如,我们有一些数据[i][n]和一些常数k

fig = Figure((5.0, 4.0), dpi=self.dpi)
axes = fig.add_subplot(111)
for i in range(1,len(data)):
    axes.plot(data[0],data[i])
lines=axes.get_lines()
for j in range (0,len(lines)):
    data = lines[j].get_xdata()
    for x in range (0,len(data)):
        data[x]=data[x]+k
    lines[j].set_xdata(data)
最后,您将得到每行的扩展数据都增加了len(行)*k。
看起来每行的扩展数据共享同一个指针。对于Line2D的不同对象是否真的可能。或者可能是某种错误?

可能是如果您将x数据复制到调用
plot
,例如
axes.plot(数据[0][:],数据[i])
。尝试了之后,它就不起作用了。无论如何,axis.plot()应该复制,IMHO。有趣的事情!使用“data=data+k”代替“对于范围内的x(0,len(行)):data[x]=data[x]+k”,它工作正常。谁能解释呢?