欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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>

Notes_matplotlib_errorbar和填充
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>

Notes_matplotlib_errorbar和填充

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>

Notes_matplotlib_errorbar和填充

plt.plot(x,y,'k',x,y2,'b')
plt.fill(x,y,'r')
#这个还不太懂是个什么情况?
#以图像的起点中点连线为轴的填充?
[<matplotlib.patches.Polygon at 0x24f9c9d24c0>]

Notes_matplotlib_errorbar和填充