2014-01-14 3 views
1

У меня проблема с моим графиком Matplotlib.matplotlib винты по оси float

Мой Programm:
Я прочитал данные датчика и сохранить его в виде файла CSV с одного знака после запятой (00.0)
после сохранения I считывания индивидуальных данных в список
мой список называется TempList и цифры плавать

Моя земля:

plt.plot(tempList, color='r', linewidth=2.0)  
plt.xticks(range(len(tempList)), timeList2, size='small', rotation=20) 
plt.axis('auto') 
plt.xlabel('Time') 
plt.ylabel('degree Celsius') 
plt.title('Temperature') 
plt.grid(True) 
plt.savefig('img/temp.png', format='png', transparent = True) 
plt.close() 

Мой результат:
http://s24.postimg.org/5ewu74w51/temp.png

Мой список:
[20,3, 20,4, 20,4, 20,4, 20,4, 20,4, 20,4, 20,4, 20,4, 20,4]

если сделать список с все INT работает, но так как мне нужно thoose знаков после запятой Я не могу использовать int.
я уже пытался установить 'ylim', но он не работает

EDIT: спасибо за помощь
я удалил 'plt.axis (' Авто ')'
Решение:

minTemp = math.ceil(min(tempList)) 
minTemp = round(minTemp, 1) 
maxTemp = math.ceil(max(tempList)) 
maxTemp = round(maxTemp, 1) 
plt.ylim((minTemp-1), (maxTemp+1)) 

plt.ylim((minTemp-1), (maxTemp+1)) 
+0

Вам необходимо предоставить доступ к местоположению, в котором вы разместите файл, если хотите оказать помощь ... – Floris

+0

исправлено, извините. – Atisheh

+0

Название говорит о том, что, похоже, какая-то ошибка, если способ matplotlib обозначает вашу ось, является проблемой, а затем посмотрите http://stackoverflow.com/q/14442099/2870069 -> нет ошибки, просто «по умолчанию». – Jakob

ответ

2

Я сделал этот минимальный пример. Я удалил plt.axis ('auto') и заменил его plt.ylim, который, похоже, работает. Когда я заменяю plt.ylim на plt.axis ('auto'), он работает не очень хорошо.

from matplotlib import pyplot as plt 
import math 
tempList = [20.3, 20.4, 20.4, 20.4, 20.4, 20.4, 20.4, 20.4, 20.4, 20.4] 
plt.plot(tempList) 
plt.ylim(math.floor(min(tempList)), math.ceil(max(tempList))) 
plt.show() 
+0

отлично работает, но я не хочу иметь 0 в качестве начальной точки. Итак, теперь я попробовал min вместо 0, и все выглядит как раньше. – Atisheh

+0

Что делать, если вы используете: plt.ylim (math.floor (min (tempList)), math.ceil (max (tempList))) –

+0

спасибо! похоже, что это тоже работает. :) – Atisheh

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