2014-11-18 3 views
0

я хотел построить свои временные секретари видеокарты из файла на участкеPylab график показывает никакого сюжета не указывает

import matplotlib.pylab as pylab 

temperature = 0.0 
timestep = 0 

logfile = file('sensorlog.txt','r') 
pylab.figure(1) 
pylab.xlabel('Time Steps') 
pylab.ylabel('Fan Temperature') 
for line in logfile: 
    if line[0].isdigit(): 
     pylab.figure(1) 

     temperature = float(line.split(',')[4].strip()) 
     timestep = timestep + 1 
     #print 'timestep: ' + str(timestep) + '| temperature: ' + str(temperature) /works till here D: 
     pylab.plot(float(timestep), float(temperature), color='green') 

pylab.show() 

Выходящий участок просто пустой, масштабирование каждой оси, кажется, в правильном измерении уже ,

Небольшой пример текстового файла я читал в, он просто идет, как это (в течение приблизительно 12 000 записей)

 Date  , GPU Core Clock [MHz] , GPU Memory Clock [MHz] , GPU Temperature [°C] , Fan Speed (%) [%] , Fan Speed (RPM) [RPM] , GPU Load [%] , GPU Temp. #1 [°C] , GPU Temp. #2 [°C] , GPU Temp. #3 [°C] , Memory Usage (Dedicated) [MB] , Memory Usage (Dynamic) [MB] , VDDC [V] , 

2014-11-17 20:21:38 ,    100.0 ,    150.0 ,    39.0 ,    41 ,     - ,   0 ,   39.5 ,   35.5 ,   40.5 ,       476 ,      173 , 0.950 , 

2014-11-17 20:21:39 ,    100.0 ,    150.0 ,    40.0 ,    41 ,     - ,   6 ,   39.5 ,   35.0 ,   40.5 ,       476 ,      173 , 0.950 , 
+0

Кажется, вы хотите построить одну точку в то время. Не делайте этого: собирайте все данные в массив (из файла журнала), затем запишите все сразу. Итак, сделайте весь график * вне * вашего цикла. – Evert

ответ

0

Похоже, вы хотите построить один пункт в то время. Не делайте этого: собирайте все данные в массив (из файла журнала), затем запишите все сразу. Таким образом, сделайте все заговоры вне ваш цикл:

import matplotlib.pylab as pylab 

logfile = file('sensorlog.txt','r') 
pylab.figure(1) 
pylab.xlabel('Time Steps') 
pylab.ylabel('Fan Temperature') 
temperatures = [] 
for line in logfile: 
    if line[0].isdigit(): 
     temperatures.append(float(line.split(',')[4].strip())) 
timesteps = np.arange(len(temperatures)) 
pylab.plot(timesteps, temperatures, color='green') 
pylab.show() 

(Если ваш timesteps являются увеличение на 1, начиная с 0, как и здесь, вы можете даже сделать просто:

pylab.plot(temperatures, color='green') 

и Matplotlib будет заполните значения х.)

+0

Большое спасибо, что сделал трюк! Я на самом деле пыталась построить один пункт за раз. –

Смежные вопросы