gpt4 book ai didi

python - 更改 matplotlib.pyplot text() 对象属性

转载 作者:太空狗 更新时间:2023-10-29 20:12:55 33 4
gpt4 key购买 nike

我有一个 matplotlib.pyplot 图表,它循环更新以创建动画,使用我从 another answer 获得的这种代码:

import matplotlib.pyplot as plt    
fig, ax = plt.subplots()
x = [1, 2, 3, 4] #x-coordinates
y = [5, 6, 7, 8] #y-coordinates

for t in range(10):
if t == 0:
points, = ax.plot(x, y, marker='o', linestyle='None')
else:
new_x = ... # x updated
new_y = ... # y updated
points.set_data(new_x, new_y)
plt.pause(0.5)

现在我想在绘图上放置一个 plt.text() 来显示已经过去的时间。然而,将 plt.text() 语句放入循环内,会在每次 迭代时创建一个新的 text 对象,将它们全部放在彼此。所以我必须在第一次迭代时只创建一个 text 对象,然后在后续迭代中修改它。不幸的是,我无法在任何文档中找到如何在创建此对象(它是一个 matplotlib.text.Text 对象)实例的属性后对其进行修改。有帮助吗?

最佳答案

set_data 类似,您可以使用 set_text(请参阅此处的文档:http://matplotlib.sourceforge.net/api/artist_api.html#matplotlib.text.Text.set_text)。

那么先

text = plt.text(x, y, "Some text")

然后在循环中:

text.set_text("Some other text")

在您的示例中,它可能看起来像:

for t in range(10):
if t == 0:
points, = ax.plot(x, y, marker='o', linestyle='None')
text = plt.text(1, 5, "Loops passed: 0")
else:
new_x = ... # x updated
new_y = ... # y updated
points.set_data(new_x, new_y)
text.set_text("Loops passed: {0}".format(t))
plt.pause(0.5)

关于python - 更改 matplotlib.pyplot text() 对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10978440/

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