很多问题都讲得不清不楚!比如三角函数填充

来源:3-2 基本线图绘制

学习之王

2017-08-23 15:50

讲的很模糊,填充区域的原理,估计没有人可以听懂在讲什么

写回答 关注

5回答

  • qq_骇熊的锅_0
    2017-08-24 18:30:59
    已采纳

    plt.fill_between(x, np.abs(x) < 0.5, c, c > 0.5, color="green", alpha=0.25)

    第一个参数x表示x轴,第二个参数 np.abs(x)表示x的绝对值,np.abs(x) < 0.5是一个判定变量,c表示y轴,c > 0.5是一个判定条件。

    当np.abs(x) < 0.5为真(1),从y轴的1(满足c>0.5)开始往两边填充(当然X轴上是-0.5到0.5之间的区域),此时填充的也就是图上方的两小块。当np.abs(x) >= 0.5为假(0),从y轴的0开始向上填充,当然只填充c>0.5的区域,也就是图中那两个大的对称区域。

    总的来说,必须满足c>0.5(对应API文档中的where条件),在这个前提下进行填充,前面那个判定变量可以为0或1.

    个人理解,,

    _Geng 回复鼠尾草17

    就是在x,c之间填充, abs(x) > 0.5, 就在0,c(即cos(x))之间填充, 还需要c大于0.5

    2018-05-11 16:52:17

    共 2 条回复 >

  • 慕神2407217
    2019-02-08 01:14:06
    总结前面大佬的回答,自己也上官网看了,感觉自己终于能理解了
    plt.fill_between(x, np.abs(x)<0.5, c, c>0.5, color="green", alpha=0.25)
    #对照官网matplotlib.pyplot.fill_between(x, y1, y2=0, where=None, interpolate=False, step=None, *, data=None, **kwargs)
    #其中x是必写的表示x轴, y1是第一条曲线, y2是第二条曲线, 这个函数的意思就是要在满足where的条件下在y1与y2曲线之间填充
    #在我们的这句话中, np.abs(x)<0.5就是y1, 是一个布尔值, c就是y2, 是cos(x).
    #当|x|<0.5时布尔值为1, 即y1就是1, 此时填充y1=1和y2=c之间的部分. |x|>=0.5时布尔值为0, 即y1就是0, 此时填充y1=0和y2=c之间的部分
    #c>0.5其实是判断条件, 完整写应该是where=c>0.5, 意思是在c>0.5的条件下完成前面的填充


  • 解空居士
    2018-09-15 22:39:37

    我也来解释下,看是否清楚

    matplotlib.pyplot.fill_between(xy1y2=0where=Noneinterpolate=Falsestep=Nonehold=Nonedata=None**kwargs)[source]

    • x : array (length N)

    • The x coordinates of the nodes defining the curves.

    • y1 : array (length N) or scalar

    • The y coordinates of the nodes defining the first curve.

    • y2 : array (length N) or scalar, optional, default: 0

    • The y coordinates of the nodes defining the second curve.

    必须看官网才明白,第二个参数y1是曲线1,第三个参数y2是曲线2

    ---------------------------------------------------------------------------------

    plt.fill_between(x, np.abs(x) < 0.5, c, c > 0.5, color="green", alpha=0.25)

    abs(x)<0.5,当-arccos(0.5)<x<-0.5,0.5<x<arccos(0.5)时,该表达式为假(即0),也就是y1=0就是x轴,反之表达式取1,就是y1=1

    曲线2就是y2=c,(但c限定大于0.5那一小段范围)

    把曲线1和曲线2围成图形就是课程中的样子

    如下:

    从y=0到y=c   (-arccos(0.5)<x<-0.5,0.5<x<arccos(0.5));

    从y=1到y=c   (-0.5<x<0.5)

  • 解空居士
    2018-09-15 22:02:37

    一大半的人听不懂

  • JasonHsia
    2018-03-03 23:14:27

    c表示的应该就是c=cos(x)这个曲线,而不是y轴。其它正解。

Python数据分析-基础技术篇

使用Python进行数据分析的基础模块简介

93613 学习 · 277 问题

查看课程

相似问题