前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据可视化-Matplotlib绘制实时数据图表

数据可视化-Matplotlib绘制实时数据图表

作者头像
XXXX-user
发布2019-08-09 14:24:43
2.1K0
发布2019-08-09 14:24:43
举报
文章被收录于专栏:不仅仅是python

微信公众号:yale记 关注可了解更多的教程。问题或建议,请公众号留言;

背景介绍

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

动态生成数据

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

代码语言:javascript
复制
import csv
import random
import time

x_value = 0
total_1 = 1000
total_2 = 1000
fieldnames = ["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文件,进行实时的绘制图表信息:

代码语言:javascript
复制
import pandas as pd
import matplotlib.pyplot as plt
from 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()

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-08-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 yale记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景介绍
  • 动态生成数据
  • 绘制实时数据图表
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档