首页 > 解决方案 > matplotlib funcAnimation 带有静态刻度的增长线

问题描述

我在我的 python 脚本中使用 matplotlib,该脚本用于进行一些连接测试并将它们绘制在图表中。animate 函数从执行连接测试的其他函数获取其数据。

我希望图形 x 轴以 00:00、01:00 ... 23:00 的格式显示所有时间,并且动画功能会将每个点放在正确的时间点,但我还没有做到它以任何方式。在我附加的图像中,我用 plt.xticks([]) 设置了 x 轴刻度,但是随着线条的增长,轴只是向右滚动。代码示例不起作用!它唯一的动画功能我不想附加整个代码,因为它无关紧要。

animate 函数从首先执行测试的生成器获取 args,然后生成值,首先生成 google,然后生成 facebook,master_dict 是一个包含所有测试结果的字典,因此它从中获取绘图的值。graph_list 是包含绘图点的 2 个 2d numpy 数组的列表。x_val 是日期时间字符串,格式为 "%H:%M"%S",y_val 是测试的浮点值

def animate(args):

    url = args[0]
    master_dict = args[1]

    plot_dict = master_dict[url]
    url_id = 1 if 'google' in url else 0

    x_val = plot_dict[TIME]
    y_val = plot_dict[BYTE]

    point = np.array([[x_val, y_val]])

    graph_list[url_id] = np.append(graph_list[url_id], point, axis=0)
    x, y = graph_list[url_id].T
    y = y.astype(np.float)
    plt.gcf().autofmt_xdate(rotation=60)

    return plt.plot(x, y, color=('g' if url_id else 'r'), linewidth=2)

图形

标签: pythonmatplotlib

解决方案


推荐阅读