Notes_matplotlib_errorbar和填充
程序员文章站
2022-03-21 10:32:53
...
matplotlib 中的误差和填充
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
plt.style.use('seaborn-whitegrid')
x=np.linspace(0,10,50)
dy=0.8
y=np.sin(x)+dy*np.random.randn(50)
plt.errorbar(x,y,#点的位置
yerr=dy,xerr=0.3,#y,x方向上的误差,即errorbar的长度,标量或者一维、二维数组(二维数组代表下,上误差不同)。
fmt='--m',#和plot里面的一向,可设为'none'不显示线
ecolor='lightgrey',#errorbar的颜色
elinewidth=3,#errorbar的线宽
capsize=5,#errorbar上下界线的横向长度
capthick=3,#errorbar上下界线的厚度,
barsabove=False,#将errorbar绘制在线层上,默认False
lolims=False,#lolims,uplims,xlolims,ylolims,都是只有下误差或上误差的情况。
errorevery=5,
label='None',
marker='d',
mec='b')#误差线之间的间隔
<ErrorbarContainer object of 3 artists>
plt.errorbar()
还包含了其他的关键字实参:
- data和之前的
plt.plot()
,plt.scatter()
用法相同 - marker的mfc,mec,ms,mew和之前一样。
- Lines2D 的属性…
感觉plt.errorbar()就是plt.plot()加上对errorbar处理的版本
下面是plt.fill_between()
和plt.fill()
:plt.fill_between()
是对两图像之间填充。参数包括:plt.Polygon(多边形)对象的参数
x=np.linspace(0,10,1000)
y=5*np.sin(x)
z=5*np.sin(x)+3
plt.plot(x,y,'-b',x,z,'-m',)
plt.fill_between(x[300:500],y[300:500],z[300:500],color='gray',alpha=0.3)
# 使用切片进行了部分填充。
<matplotlib.collections.PolyCollection at 0x1f175f4acd0>
y2=5*np.sin(x-2)+3#调整一下图形
plt.plot(x,y2,'-b',x,z,'-m',)
plt.fill_between(x,y2,z,
fc='c',ec='y',
where=y2>z,
hatch='x',)
#参数,where的使用
#hatch详见docstring。
#fc:facecolor
#ec:edgecolor
<matplotlib.collections.PolyCollection at 0x1f1013b30d0>
plt.plot(x,y,'k',x,y2,'b')
plt.fill(x,y,'r')
#这个还不太懂是个什么情况?
#以图像的起点中点连线为轴的填充?
[<matplotlib.patches.Polygon at 0x24f9c9d24c0>]