我正在用散点图构建动画,该散点图显示了一段时间内多个组的数据。当我想添加图例时,我能得到的最好的仅显示一组。样本数据集:import pandas as pd df = pd.DataFrame([ [1, 'a', 0.39, 0.73], [1, 'b', 0.87, 0.94], [1, 'c', 0.87, 0.23], [2, 'a', 0.17, 0.37], [2, 'b', 0.03, 0.12], [2, 'c', 0.86, 0.22], [3, 'a', 0.01, 0.15], [3, 'b', 0.03, 0.1], [3, 'c', 0.29, 0.19], columns=['period', 'group', 'x', 'y'])我这样制作动画:import matplotlib.pyplot as pltimport matplotlib.animation as animationfig, ax = plt.subplots()ax.set_xlim(0, 1)ax.set_ylim(0, 1)colors = {'a': 'r','b': 'b','c': 'g' }scat = ax.scatter([], [], c=df['group'].map(colors), )def init(): scat.set_offsets([]) return scat,def update(period): scat.set_offsets(df[df['period'] == period][['x', 'y']]) scat.set_label(df[df['period'] == period]['group']) ax.legend([scat], df['group'].unique().tolist(), loc=1) ax.set_title(period) return scat,ani = animation.FuncAnimation(fig, update, init_func=init, frames=[1,2,3,4,5], interval=500, repeat=True)plt.show()我只在传说中出现了一个小组。如果仅输入ax.legend(loc=1),它将显示如下内容:6 a7 b8 cName: group, dtype:object数字在每一帧中都会变化。
添加回答
举报
0/150
提交
取消