资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

如何使用Matplotlib绘制实时数据图表

小编给大家分享一下如何使用Matplotlib绘制实时数据图表,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

在长宁等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站建设、成都网站设计 网站设计制作按需求定制制作,公司网站建设,企业网站建设,成都品牌网站建设,全网整合营销推广,外贸网站建设,长宁网站建设费用合理。

背景介绍

将学习如何使用Matplotlib绘制实时数据图表。我们将学习如何监控不断更新的CSV文件,并在该文件进入时绘制该CSV文件中的值。这对于绘制来自API或传感器或任何其他频繁来源的数据非常有用。让我们开始吧...

如何使用Matplotlib绘制实时数据图表

动态生成数据

接下来我们模拟一个实时数据的产生,动态的追加到data.csv文件中去,来看代码实现:

import csvimport randomimport time
x_value = 0total_1 = 1000total_2 = 1000fieldnames = ["x_value", "total_1", "total_2"]with open('data.csv', 'w') as csv_file:    csv_writer = csv.DictWriter(csv_file, \    fieldnames=fieldnames)    csv_writer.writeheader()while True:    with open('data.csv', 'a') as csv_file:        csv_writer = csv.DictWriter(csv_file,\         fieldnames=fieldnames)        info = {            "x_value": x_value,            "total_1": total_1,            "total_2": total_2        }        csv_writer.writerow(info)        print(x_value, total_1, total_2)
       x_value += 1        total_1 = total_1 + random.randint(-6, 8)        total_2 = total_2 + random.randint(-5, 6)    time.sleep(1)

绘制实时数据图表

我们来实现动态读取上边生成的data.csv文件,进行实时的绘制图表信息:

import pandas as pdimport matplotlib.pyplot as pltfrom matplotlib.animation import FuncAnimation#设置样式plt.style.use('fivethirtyeight')x_vals = []y_vals = []#定义函数读取csv文件内容def animate(i):    data = pd.read_csv('data.csv')    x = data['x_value']    y1 = data['total_1']    y2 = data['total_2']
   plt.cla()    #绘制线图    plt.plot(x, y1, label='Channel 1')    plt.plot(x, y2, label='Channel 2')    plt.legend(loc='upper left')    plt.tight_layout()#调用FuncAnimation实时调用函数每秒执行1次ani = FuncAnimation(plt.gcf(), animate, \     interval=1000)
plt.tight_layout()plt.show()

看完了这篇文章,相信你对“如何使用Matplotlib绘制实时数据图表”有了一定的了解,如果想了解更多相关知识,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


当前文章:如何使用Matplotlib绘制实时数据图表
网站路径:http://cdkjz.cn/article/phojjh.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220