我试图通过从vmstat命令捕获统计信息来绘制linux VM的CPU利用率。我已经将数据保存在文件中,并且试图绘制用户,系统和空闲的CPU%。
import re
import matplotlib.pyplot as plt
from datetime import datetime
import numpy as np
import matplotlib.dates as mdates
from matplotlib import axis
from matplotlib.axis import Axis
f, a = plt.subplots(1,1, figsize=(5,5))
data = [x.strip() for x in open('vm_stat.out', 'r')]
time = [' '.join(re.split('\s+', data[x])[1:4]) for x in range(0, len(data), 2)]
user_cpu = [re.split('\s+', data[x])[12] for x in range(1, len(data)+1, 2)]
system_cpu = [re.split('\s+', data[x])[13] for x in range(1, len(data)+1, 2)]
idle_cpu = [re.split('\s+', data[x])[14] for x in range(1, len(data)+1, 2)]
plt.title("CPU utilization")
a.yaxis.set_major_locator(plt.MaxNLocator(10))
a.xaxis.set_major_locator(plt.MaxNLocator(10))
a.plot(time, user_cpu, label = 'User %', color = 'r')
a.plot(time, system_cpu, label = 'System %', color = 'b')
a.plot(time, idle_cpu, label = 'Idle %', color = 'g')
plt.ylim(0,100)
plt.xticks(rotation=30)
plt.yticks(np.arange(0,100,10))
plt.show()
当我看到所显示的图时,我发现y轴标签值不是从0开始,而是从11开始,并且显示随机值。 我需要的是y轴刻度标签应从0到100以10的步长绘制。
答案 0 :(得分:0)
应该工作:
a.set_yticks(range(0,110,10))