y轴标签的刻度值是随机的

时间:2018-10-05 11:57:26

标签: python matplotlib

我试图通过从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的步长绘制。

1 个答案:

答案 0 :(得分:0)

应该工作:

a.set_yticks(range(0,110,10))