Python繪制計(jì)算機(jī)CPU占有率變化的折線圖
本篇文章將實(shí)現(xiàn)用Python獲取系統(tǒng)信息CPU占有率并將其變化繪制成折線圖。
第一步:獲取系統(tǒng)CPU占有率信息
psutil模塊是專門獲取系統(tǒng)信息的模塊,在該模塊里有一個(gè)cpu_percent()方法是用來(lái)獲取系統(tǒng)CPU占有率的。我們每隔1s獲取一次CPU占有率,并將獲取到的信息存儲(chǔ)在指定文件中,將其保存起來(lái),本案例中我將文件命名為cpu.txt
則第一步獲取信息的代碼如下:
# 獲取系統(tǒng)信息的模塊 import psutil import ?time ? # m每隔一秒繪制CPU的占有率; ?如何持久化保存? 如何將時(shí)間和對(duì)應(yīng)的cpu占有率匹配; while True: ? ? # 獲取當(dāng)前時(shí)間和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)
運(yùn)行之后可以打開文件,可以看到相應(yīng)的時(shí)間下的存儲(chǔ)的CPU占有率:
第二步:將獲取到的信息繪制成折線圖
pyecharts模塊是用來(lái)繪制圖形的模塊,其中的Line是繪制折線圖的,如果想要繪制散點(diǎn)圖則導(dǎo)入Scatter。我們要繪制折線圖,所以導(dǎo)入的是Line。
先創(chuàng)建兩個(gè)空列表,一個(gè)用來(lái)存儲(chǔ)時(shí)間變化,一個(gè)用來(lái)存儲(chǔ)CPU占有率的變化,然后打開之前存好的信息,并遍歷文件的每一行內(nèi)容,將內(nèi)容添加到列表中,之后對(duì)列表中的內(nèi)容進(jìn)行繪圖就OK。
代碼如下:
mport random from pyecharts import options as opts from pyecharts.charts import Line ? # 獲取折線圖需要繪制的數(shù)據(jù)信息; x = [] y = [] with open('cpu.txt') as f: ?# 以讀的方式打開文件 ? ? for line in f: ? ? ? ? ?# 依次遍歷文件的每一行內(nèi)容 ? ? ? ? time, per = line.split() ? ?# 返回時(shí)間和對(duì)應(yīng)時(shí)間的cpu占有率 ? ? ? ? x.append(time) ? ? ? ? y.append(per) ? # 實(shí)例化Line類為line對(duì)象, 并添加x和y對(duì)應(yīng)的點(diǎn); line = ( ? ? Line() ? ? .add_xaxis(x) ? ? .add_yaxis("", y) ? ? ? .set_global_opts(title_opts=opts.TitleOpts(title="Cpu占有率散點(diǎn)圖")) ) # 將折線圖信息保存到文件中; line.render()
運(yùn)行后可以得到一個(gè)render.html的文件,打開它之在右上角選擇要打開的瀏覽器,即可顯示出繪制好的圖形了,如下所示:
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Django自關(guān)聯(lián)實(shí)現(xiàn)多級(jí)聯(lián)動(dòng)查詢實(shí)例
這篇文章主要介紹了Django自關(guān)聯(lián)實(shí)現(xiàn)多級(jí)聯(lián)動(dòng)查詢實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05python實(shí)現(xiàn)根據(jù)主機(jī)名字獲得所有ip地址的方法
這篇文章主要介紹了python實(shí)現(xiàn)根據(jù)主機(jī)名字獲得所有ip地址的方法,涉及Python解析IP地址的相關(guān)技巧,需要的朋友可以參考下2015-06-06對(duì)python中return和print的一些理解
最近看到視頻中講到python中的print和return的區(qū)別,感到一些迷惑,所以自己上手實(shí)踐了一把,下面這篇文章主要給大家介紹了關(guān)于對(duì)python中return和print的一些理解,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-08-08python創(chuàng)建一個(gè)最簡(jiǎn)單http webserver服務(wù)器的方法
這篇文章主要介紹了python創(chuàng)建一個(gè)最簡(jiǎn)單http webserver服務(wù)器的方法,實(shí)例分析了Python操作http創(chuàng)建服務(wù)器端的相關(guān)技巧,需要的朋友可以參考下2015-05-05python實(shí)現(xiàn)創(chuàng)建新列表和新字典,并使元素及鍵值對(duì)全部變成小寫
今天小編就為大家分享一篇python實(shí)現(xiàn)創(chuàng)建新列表和新字典,并使元素及鍵值對(duì)全部變成小寫,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01python [::-1] [::-1,::-1]的具體使用
本文主要介紹了python [::-1] [::-1,::-1]的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05Python深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)基本原理
人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Networks,簡(jiǎn)寫為ANNs)也簡(jiǎn)稱為神經(jīng)網(wǎng)絡(luò)(NNs)或稱作連接模型(Connection Model),它是一種模仿動(dòng)物神經(jīng)網(wǎng)絡(luò)行為特征,進(jìn)行分布式并行信息處理的算法數(shù)學(xué)模型2021-10-10