Python 根据csv表格的数据画趋势图或者实时展现折线图

Python根据csv表格的数据画趋势图或者实时展现折线图
表格内容为

时间内存占用量
2023.4.25 10:20800mb
2023.4.25 15:35750mb

封装两个方法:
1、实时绘图监视系统获取内存占用信息
2、根据统计结果绘制图片并保存

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt


def current_draw(csv_path):
    # 实时绘图
    fig = plt.figure()
    ax = fig.add_subplot(111)
    ax.set_title(u"Memory Usage", size=20)
    ax.legend(loc='upper left')
    plt.xlabel(u'time', size=15)
    plt.ylabel(u'memory(Mb)', size=15)
    plt.xticks(rotation=60, size=8)

    while True:
        time = []
        virtual_memory = []
        real_memory = []
        share_memory = []
        # 读表
        with open(csv_path, 'rb') as csvfile:
            reader = pd.read_csv(csvfile)
            for index, row in reader.iterrows():
                time.append(row.iloc[1])
                # 去掉单位
                real_memory.append(float(row.iloc[3].strip('M')))
        h_time = []
        for i in time:
            h_time.append(i.split(' ')[-1])
        # 物理内存
        ax.plot(h_time, real_memory, 'o-', label='real_memory', color='blue')
        plt.pause(1)


def main(csv_path, png_path):
    # 绘图
    fig = plt.figure()
    ax = fig.add_subplot(111)
    ax.set_title(u"Memory Usage", size=20)
    ax.legend(loc='upper left')
    plt.xlabel(u'time', size=15)
    plt.ylabel(u'memory(Mb)', size=15)
    plt.xticks(rotation=60, size=8)

    time = []
    virtual_memory = []
    real_memory = []
    share_memory = []
    # 读表
    with open(csv_path, 'rb') as csvfile:
        reader = pd.read_csv(csvfile)
        for index, row in reader.iterrows():
            time.append(row.iloc[1])
            # 去掉单位
            real_memory.append(float(row.iloc[3].strip('M')))
    h_time = []
    for i in time:
        h_time.append(i.split(' ')[-1])
    # 物理内存
    ax.plot(h_time, real_memory, 'o-', label='real_memory', color='blue')
    plt.savefig(png_path)
    plt.show()


if __name__ == '__main__':
    # log文件路径
    csv_file = './mem_log.csv'
    # 保存图片路径
    png_file = './mem_log.png'
    main(csv_file, png_file)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值