python画一个CPU图
时间: 2023-07-13 12:24:41 浏览: 49
可以使用Python的Matplotlib库来画一个CPU图。以下是一个简单的示例代码:
```python
import psutil
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
# 获取CPU使用率
def get_cpu_usage():
return psutil.cpu_percent()
# 更新图表
def update_chart(frame):
cpu_usage = get_cpu_usage()
ax.clear()
ax.bar(["CPU"], [cpu_usage], color="green")
ax.set_ylim(0, 100)
ax.set_ylabel("使用率 (%)")
ax.set_title("CPU使用率实时监控")
# 创建图表
fig, ax = plt.subplots()
# 创建动画
ani = FuncAnimation(fig, update_chart, interval=1000)
# 显示图表
plt.show()
```
这个程序会实时更新CPU使用率的柱状图。你可以根据需要进行修改和定制化。
相关问题
python获取cpu属性进行实时绘图
要获取CPU属性并进行实时绘图,你可以使用Python中的psutil和matplotlib库。以下是一个简单的示例代码:
```python
import psutil
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
# 创建一个包含CPU使用率的空列表
cpu_usage = []
# 定义一个函数,用于获取CPU使用率并将其添加到列表中
def get_cpu_usage():
cpu_usage.append(psutil.cpu_percent())
# 创建一个实时绘图函数
def animate(i):
# 获取CPU使用率
get_cpu_usage()
# 清空图表
plt.clf()
# 绘制CPU使用率曲线
plt.plot(cpu_usage)
# 设置图表标题
plt.title('CPU Usage')
# 设置图表横坐标范围
plt.xlim(0, 100)
# 设置图表纵坐标范围
plt.ylim(0, 100)
# 创建一个动画对象并开始动画
ani = FuncAnimation(plt.gcf(), animate, interval=1000)
plt.show()
```
这个代码会实时获取CPU使用率并将其添加到一个列表中,然后使用matplotlib库绘制一个实时的CPU使用率曲线图表。你可以通过修改interval参数来调整更新图表的频率。
python yolov8 目标检测 推理画框
以下是使用yolov8进行目标检测推理并画框的Python代码示例:
```python
import cv2
import torch
from models.experimental import attempt_load
from utils.general import non_max_suppression, scale_coords, plot_one_box
from utils.torch_utils import select_device
# 加载模型
weights = 'yolov8s.pt'
device = select_device('')
model = attempt_load(weights, map_location=device)
stride = int(model.stride.max())
# 加载图片
img_path = 'test.jpg'
img = cv2.imread(img_path)
# 图片预处理
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
img = cv2.resize(img, (640, 640))
img = torch.from_numpy(img).to(device).float()
img /= 255.0
if img.ndimension() == 3:
img = img.unsqueeze(0)
# 模型推理
pred = model(img)[0]
pred = non_max_suppression(pred, 0.4, 0.5)
# 画框
for det in pred:
if det is not None and len(det):
det[:, :4] = scale_coords(img.shape[2:], det[:, :4], img.shape[2:]).round()
for *xyxy, conf, cls in reversed(det):
label = f'{model.names[int(cls)]} {conf:.2f}'
plot_one_box(xyxy, img, label=label)
# 显示图片
img = img.mul(255).byte().cpu().numpy()
img = cv2.cvtColor(img[0], cv2.COLOR_RGB2BGR)
cv2.imshow('result', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
上述代码中,我们首先加载了yolov8模型,然后使用OpenCV库加载了一张图片。接着,我们对图片进行了预处理,将其转换为模型所需的格式。然后,我们使用模型对图片进行了推理,并使用非极大值抑制算法过滤了一些冗余的检测结果。最后,我们使用plot_one_box函数在图片上画出了检测框,并显示了结果。