gpt4 book ai didi

python - 在 matplotlib 中为(艺术家)动画添加图例

转载 作者:太空宇宙 更新时间:2023-11-03 15:52:11 25 4
gpt4 key购买 nike

我用一组像这样的图像制作了一个动画(10张快照):enter image description here

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import Circle
import time

infile = open ('out.txt')

frame_counter = 0

N_p = 100
N_step = 10
N_line = N_p*N_step

for s in xrange(N_step):
x, y = [], []
for i in xrange(N_p):
data = infile.readline()
raw = data.split()
x.append(float(raw[0]))
y.append(float(raw[1]))

xnp = np.array(x)
ynp = np.array(y)

fig = plt.figure(0)
ax = fig.add_subplot(111, aspect='equal')
for x, y in zip(xnp, ynp):

cir = Circle(xy = (x, y), radius = 1)
cir.set_facecolor('red')
ax.add_artist(cir)
cir.set_clip_box(ax.bbox)

ax.set_xlim(-10, 150)
ax.set_ylim(-10, 150)
fig.savefig("step.%04d.png" % frame_counter)
ax.remove()
frame_counter +=1

现在我想为每个图像添加一个图例,显示时间步长。为此,我必须为这 10 张图像中的每张图像设置图例。问题是我测试了不同的东西,例如 ax.set_labelcir.set_label ,...我收到这样的错误:

 UserWarning: No labelled objects found. Use label='...' kwarg on individual plots

根据此错误,我必须为我的个人图添加标签,但由于这是艺术家的图,我不知道如何做到这一点。

最佳答案

如果出于某种原因您需要 legend ,您可以将您的圆圈显示为句柄并使用一些文本作为标签。

ax.legend(handles=[cir], labels=["{}".format(frame_counter)])

如果你真的不需要图例,你可以使用一些 text放置在轴内。

ax.text(.8,.8, "{}".format(frame_counter), transform=ax.transAxes)

关于python - 在 matplotlib 中为(艺术家)动画添加图例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41191273/

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