【问题标题】:How to fill above and below a straight line in python's matplotlib如何在python的matplotlib中填充直线的上方和下方
【发布时间】:2020-10-15 02:47:38
【问题描述】:

我想知道如何在 matplotlib 中填充直线上方和下方的区域。例如,我有以下代码用于绘图

ax.axhline(y=0,color='black',linestyle='--')

我想知道如何将该线上方的区域填充为绿色,下方为红色。我查看了this question,但线图与直线不同。我熟悉.fill_between(),但不确定如何在这种情况下使用它,因为它需要一个 x 和 y 参数。任何帮助表示赞赏,谢谢。

【问题讨论】:

    标签: python matplotlib


    【解决方案1】:

    您必须获取要绘制的 x 轴范围,然后使用 plt.fill_between

    import matplotlib.pyplot as plt
    
    y_val = 2
    import numpy as np
    x = np.linspace(0,1,10)
    plt.axhline(y=y_val)
    plt.fill_between(x,0, y_val)
    plt.fill_between(x, y_val, 4, color='r')
    plt.show()
    

    此图片向您展示了示例

    如果您不知道限制,那么可能使用plt.gca().get_ylim()plt.gca().get_xlim() 来获取x 和y 范围

    在这种情况下,它将被修改为

    
    y_val = 0.5
    import numpy as np
    x2 = plt.gca().get_xlim()
    print (x2)
    y2 = plt.gca().get_ylim()
    
    plt.axhline(y=y_val)
    plt.fill_between(x2,y2[0], y_val)
    plt.fill_between(x2, y_val, y2[1], color='r')
    print (y2[0])
    plt.show()
    

    【讨论】:

      猜你喜欢
      • 2013-05-30
      • 2018-10-14
      • 1970-01-01
      • 1970-01-01
      • 2021-02-08
      • 2019-10-31
      • 2023-02-02
      • 2014-04-15
      • 1970-01-01
      相关资源
      最近更新 更多