【问题标题】:matplotlib animation groups on single line单行上的 matplotlib 动画组
【发布时间】:2021-04-08 15:08:55
【问题描述】:

我想做一个标准的 matplotlib 动画,我希望不同的组作为“单”线,而不是绘制共享相同 x 轴的 10 个组。对于上下文,我正在尝试绘制一个系列中 10 本书的情绪图表,并希望对每本书的线条进行颜色编码。我发现的所有动画线的搜索似乎都是您必须从 x = 0 开始到当前 x,这使得分配正确的着色标签变得困难。

Animating "growing" line plot in Python/Matplotlib为例。假设我想将x in [0,10) 作为一个组,x in [10,20) 作为第 2 组,等等。我将如何以动画方式做到这一点?

我正在尝试获取动画版本:

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as ani

%matplotlib notebook

import matplotlib.colors as mcolors
colors = list(mcolors.XKCD_COLORS.keys())[0:10]


x = np.linspace(0, 10, 100)
y = np.sin(x)

fig, ax = plt.subplots()
line, = ax.plot(x, y, color='k')

def update(num, x, y, line):
    line.set_data(x[:num], y[:num])
    line.axes.axis([0, 10, 0, 1])
    return line,

anim = ani.FuncAnimation(fig, update, len(x), fargs=[x, y, line],
                              interval=25, blit=True)
plt.show()

看起来像这样,但每个部分都有一种颜色的动画:

plt.figure()
x_beg = 0
for i in range(1,11):
    plt.plot(x[x_beg:(x_beg + i * 10)],
             y[x_beg:(x_beg + i * 10)],
             label=i)
    x_beg += i * 10
    
plt.legend(loc='best', fontsize=15)
plt.show()    

【问题讨论】:

标签: python matplotlib


【解决方案1】:

我想出的答案是创建 X 组我想要绘制图表的填充线,用 nan 填充我不想显示的值,然后同时为所有线设置动画

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-29
    • 2023-03-31
    • 2014-05-27
    • 1970-01-01
    • 2021-02-01
    • 2020-11-17
    相关资源
    最近更新 更多