Python绘制计算机CPU占有率变化的折线图

本篇文章将实现用Python获取系统信息CPU占有率并将其变化绘制成折线图。

第一步:获取系统CPU占有率信息

psutil模块是专门获取系统信息的模块,在该模块里有一个cpu_percent()方法是用来获取系统CPU占有率的。我们每隔1s获取一次CPU占有率,并将获取到的信息存储在指定文件中,将其保存起来,本案例中我将文件命名为cpu.txt

则第一步获取信息的代码如下:

# 获取系统信息的模块
import psutil
import  time
 
# m每隔一秒绘制CPU的占有率;  如何持久化保存? 如何将时间和对应的cpu占有率匹配;
while True:
    # 获取当前时间和cpu占有率
    t  = time.localtime()
    cur_time = '%d:%d:%d' %(t.tm_hour, t.tm_min, t.tm_sec)
    cpu_res = psutil.cpu_percent()
    # print(cpu_res)
 
    # 保存到文件中;
    with open('cpu.txt', 'a+') as f:
        f.write('%s %s\n' %(cur_time, cpu_res))
    time.sleep(1)

运行之后可以打开文件,可以看到相应的时间下的存储的CPU占有率:

第二步:将获取到的信息绘制成折线图

pyecharts模块是用来绘制图形的模块,其中的Line是绘制折线图的,如果想要绘制散点图则导入Scatter。我们要绘制折线图,所以导入的是Line。

先创建两个空列表,一个用来存储时间变化,一个用来存储CPU占有率的变化,然后打开之前存好的信息,并遍历文件的每一行内容,将内容添加到列表中,之后对列表中的内容进行绘图就OK。

代码如下:

mport random
from pyecharts import options as opts
from pyecharts.charts import Line
 
# 获取折线图需要绘制的数据信息;
x = []
y = []
with open('cpu.txt') as f:  # 以读的方式打开文件
    for line in f:          # 依次遍历文件的每一行内容
        time, per = line.split()    # 返回时间和对应时间的cpu占有率
        x.append(time)
        y.append(per)
 
# 实例化Line类为line对象, 并添加x和y对应的点;
line = (
    Line()
    .add_xaxis(x)
    .add_yaxis("", y)
 
    .set_global_opts(title_opts=opts.TitleOpts(title="Cpu占有率散点图"))
)
# 将折线图信息保存到文件中;
line.render()

运行后可以得到一个render.html的文件,打开它之在右上角选择要打开的浏览器,即可显示出绘制好的图形了,如下所示:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • python绘制双Y轴折线图以及单Y轴双变量柱状图的实例

    近来实验室的师姐要发论文,由于论文交稿时间临近,有一些杂活儿需要处理,作为实验室资历最浅的一批,我这个实习生也就责无旁贷地帮忙当个下手.今天师姐派了一个小活,具体要求是: 给一些训练模型的迭代次数,训练精度的数据,让我做成图表形式展示出来,一方面帮助检查模型训练时的不足,另一方面来看样本数目和预测精度之间的联系,数据具体格式如下: Iteration 1500 label train test right acc 12 143 24 24 1.0 160 92 16 15 0.9375 100

  • 修改python plot折线图的坐标轴刻度方法

    修改python plot折线图的坐标轴刻度,这里修改为整数: 代码如下: from matplotlib import pyplot as plt import matplotlib.ticker as ticker import numpy as np def std_plot(): overall_std = [34.369, 21.366, 16.516, 11.151] max_std = [36.769, 21.794, 14.390, 4.684] plt.figure() plt

  • python绘制多个曲线的折线图

    这篇文章利用的是matplotlib.pyplot.plot的工具来绘制折线图,这里先给出一个段代码和结果图: # -*- coding: UTF-8 -*- import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt #这里导入你自己的数据 #...... #...... #x_axix,train_pn_dis这些都是长度相同的list() #开始画图 sub_axix = filter(lambda

  • Python读取Excel表格,并同时画折线图和柱状图的方法

    今日给大家分享一个Python读取Excel表格,同时采用表格中的数值画图柱状图和折线图,这里只需要几行代码便可以实. 首先我们需要安装一个Excel操作的库xlrd,这个很简单,在安装Python后直接在DOS命令下输入pip install xlrd,便可以安装成功,如果还是不行,就输入Python -m pip install xlrd.后面会附上完整的代码和截图: 这行代码就是读取本地Excel文件的: data = xlrd.open_workbook(r'C:\\Users\\ASU

  • python使用matplotlib模块绘制多条折线图、散点图

    今天想直观的展示一下数据就用到了matplotlib模块,之前都是一张图只有一条曲线,现在想同一个图片上绘制多条曲线来对比,实现很简单,具体如下: #!usr/bin/env python #encoding:utf-8 ''' __Author__:沂水寒城 功能:折线图.散点图测试 ''' import random import matplotlib import matplotlib.pyplot as plt def list2mat(data_list,w): ''' 切片.转置 '

  • Python openpyxl 插入折线图实例

    我就废话不多说了,还是直接看代码吧! import os import openpyxl from datetime import date from openpyxl import Workbook from openpyxl.chart import ( Series, LineChart, Reference, ) def add_line_chart(title, wss, min_col, min_row, max_col, max_row): c1 = LineChart() c1.

  • python使用matplotlib绘制折线图教程

    matplotlib简介 matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中. 它的文档相当完备,并且Gallery页面中有上百幅缩略图,打开之后都有源程序.因此如果你需要绘制某种类型的图,只需要在这个页面中浏览/复制/粘贴一下,基本上都能搞定. 在Linux下比较著名的数据图工具还有gnuplot,这个是免费的,Python有一个包可以调用gnuplot,但是语法比较不

  • python绘制简单折线图代码示例

    1.画最简单的直线图 代码如下: import numpy as np import matplotlib.pyplot as plt x=[0,1] y=[0,1] plt.figure() plt.plot(x,y) plt.savefig("easyplot.jpg") 结果如下: 代码解释: #x轴,y轴 x=[0,1] y=[0,1] #创建绘图对象 plt.figure() #在当前绘图对象进行绘图(两个参数是x,y轴的数据) plt.plot(x,y) #保存图象 plt

  • Python 绘制可视化折线图

    1. 用 Numpy ndarray 作为数据传入 ply import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt np.random.seed(1000) y = np.random.standard_normal(10) print "y = %s"% y x = range(len(y)) print "x=%s"% x plt.plot(y) plt.show()

  • 利用python画出折线图

    本文实例为大家分享了python画折线图的具体代码,供大家参考,具体内容如下 # encoding=utf-8 import matplotlib.pyplot as plt from pylab import * #支持中文 mpl.rcParams['font.sans-serif'] = ['SimHei'] names = ['5', '10', '15', '20', '25'] x = range(len(names)) y = [0.855, 0.84, 0.835, 0.815,

随机推荐