Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在matplotlib中绘制平均线?_Python_List_Matplotlib_Average - Fatal编程技术网

Python 如何在matplotlib中绘制平均线?

Python 如何在matplotlib中绘制平均线?,python,list,matplotlib,average,Python,List,Matplotlib,Average,我有两个列表可以使用matplotlib绘制时间序列图 r1=['14.5', '5.5', '21', '19', '25', '25'] t1=[datetime.datetime(2014, 4, 12, 0, 0), datetime.datetime(2014, 5, 10, 0, 0), datetime.datetime(2014, 6, 12, 0, 0), datetime.datetime(2014, 7, 19, 0, 0), datetime.datetime(2014,

我有两个列表可以使用matplotlib绘制时间序列图

r1=['14.5', '5.5', '21', '19', '25', '25']
t1=[datetime.datetime(2014, 4, 12, 0, 0), datetime.datetime(2014, 5, 10, 0, 0), datetime.datetime(2014, 6, 12, 0, 0), datetime.datetime(2014, 7, 19, 0, 0), datetime.datetime(2014, 8, 15, 0, 0), datetime.datetime(2014, 9, 17, 0, 0)]
我编写了一个代码,使用这两个列表绘制一个图形,如下所示:

xy.plot(h,r1)
xy.xticks(h,t1)
xy.plot(r1, '-o', ms=10, lw=1, alpha=1, mfc='orange')
xy.xlabel('Sample Dates')
xy.ylabel('Air Temperature')
xy.title('Tier 1 Lake Graph (JOR-01-L)')
xy.grid(True)
xy.show()
我添加了这组代码以绘制列表r1的平均值,即:

avg= (reduce(lambda x,y:x+y,r1)/len(r1))
avg1.append(avg)
avg2=avg1*len(r1)
xy.plot(h,avg2)
xy.plot(h,r1)
xy.xticks(h,t1)
xy.plot(r1, '-o', ms=10, lw=1, alpha=1, mfc='orange')
xy.xlabel('Sample Dates')
xy.ylabel('Air Temperature')
xy.title('Tier 1 Lake Graph (JOR-01-L)')
xy.grid(True)
xy.show()
但是代码开始抛出一个错误,说:

Traceback (most recent call last):
  File "C:\Users\Ayush\Desktop\UWW Data Examples\new csvs\temp.py", line 63, in <module>
    avg= (reduce(lambda x,y:x+y,r1)/len(r1))
TypeError: unsupported operand type(s) for /: 'str' and 'int'
回溯(最近一次呼叫最后一次):
文件“C:\Users\Ayush\Desktop\UWW数据示例\new csvs\temp.py”,第63行,在
平均值=(减小(λx,y:x+y,r1)/len(r1))
TypeError:/:“str”和“int”的操作数类型不受支持
matplotlib中是否有直接方法将平均线添加到图形中??
谢谢你的帮助

r1
是一个非实际字符串列表
浮点/int
,因此显然不能将字符串除以int,您需要在lambda中强制转换为
浮点
,或者在传递之前将列表内容转换为浮点:

r1 = ['14.5', '5.5', '21', '19', '25', '25']
r1[:] = map(float,r1)
这一变化确实有效:

In [3]: r1=['14.5', '5.5', '21', '19', '25', '25']    
In [4]: avg= (reduce(lambda x,y:x+y,r1)/len(r1))
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-4-91fbcb81cdb6> in <module>()
----> 1 avg= (reduce(lambda x,y:x+y,r1)/len(r1))    
TypeError: unsupported operand type(s) for /: 'str' and 'int'    
In [5]: r1[:] = map(float,r1)    
In [6]: avg= (reduce(lambda x,y:x+y,r1)/len(r1))    
In [7]: avg
Out[7]: 18.333333333333332

这个错误肯定是因为我在回答中指出的,也就是为什么要使用reduce来获得平均值?
avg = sum(r1) / len(r1)