我的Matplotlib图表存在问题。
我的计划:
我读取传感器数据并将其保存在一个小数位(00.0)的csv文件中
保存后,我将单个数据读出到列表中
我的列表名为tempList,数字为float
我的情节:
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'但它不起作用
编辑: 谢谢你的帮助 我删除了'plt.axis('auto')' 解决方案:
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 :(得分:2)
我做了这个最小的例子。 我删除了plt.axis('auto')并将其替换为plt.ylim,这似乎有效。 当我用plt.axis('auto')替换plt.ylim时,它不能很好地工作。
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()