網站首頁 編程語言 正文
本篇文章將實現用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的文件,打開它之在右上角選擇要打開的瀏覽器,即可顯示出繪制好的圖形了,如下所示:
原文鏈接:https://blog.csdn.net/Mr_fengzi/article/details/93473732
相關推薦
- 2022-03-20 C語言數據結構之鏈隊列的基本操作_C 語言
- 2022-07-30 Linux secure 日志分析
- 2022-04-09 MyBatis 查詢返回數據類型Map,空字段數據不返回
- 2022-09-03 python?解決數據庫寫入時float自動變為整數的問題_python
- 2022-10-02 關于react?useState更新異步問題_React
- 2022-12-30 React代碼分割的實現方法介紹_React
- 2022-06-24 基于C++實現去除字符串頭尾指定字符功能_C 語言
- 2022-05-11 Excel單元格空,設置為空字符串
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支