gpt4 book ai didi

python - 如何在创建后更改 matplotlib LineCollection 的偏移量

转载 作者:太空宇宙 更新时间:2023-11-03 19:29:55 24 4
gpt4 key购买 nike

我想使用 LineCollection 创建一堆线图。以下代码绘制两条相同的正弦曲线,彼此偏移 (0, 0.2):

import matplotlib.pyplot as plt
import matplotlib.collections
import numpy as np

x=np.arange(1000)
y=np.sin(x/50.)
l=zip(x,y)

f=plt.figure()
a=f.add_subplot(111)
lines=matplotlib.collections.LineCollection((l,l), offsets=(0,0.2))
a.add_collection(lines)
a.autoscale_view(True, True, True)
plt.show()

到目前为止一切顺利。问题是我希望能够在创建后调整该偏移量。使用 set_offsets 似乎没有达到我预期的效果。例如,以下内容对图表没有影响

a.collections[0].set_offsets((0, 0.5))

顺便说一句,其他设置命令(例如 set_color)按我的预期工作。创建曲线后如何更改曲线之间的间距?

最佳答案

我认为您在 matplotlib 中发现了一个错误,但我有一些解决方法。看起来 lines._paths 是使用您提供的偏移量在 LineCollection().__init__ 中生成的。当您调用lines.set_offsets() 时,lines._paths 属性不会更新。在您的简单示例中,您可以重新生成路径,因为您仍然保留着原始路径。

lines.set_offsets( (0., 0.2))
lines.set_segments( (l,l) )

您还可以手动应用偏移量。请记住,您正在修改偏移点。因此,要获得 0.2 的偏移量,请将 0.1 添加到预先存在的 0.1 偏移量中。

lines._paths[1].vertices[:,1] += 1

关于python - 如何在创建后更改 matplotlib LineCollection 的偏移量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6418166/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com