如何绘制(1 + x)(1 + y)> = 20?

时间:2016-02-21 03:56:12

标签: python matplotlib

在python中,我想绘制这个区域。

(1+x)*(1+y) >= 20

我不知道如何在matplotlib中执行此操作。我在互联网上搜索并找到fillplots包但我不明白如何将它用于两个变量。

这是fillplots中的一个例子:

from fillplots import plot_regions
plotter = plot_regions([
    [(lambda x: x ** 2,),  # x ^ 2 > 0 and
     (lambda x: x + 5,)],  # x + 5 > 0
])

3 个答案:

答案 0 :(得分:5)

我没有足够的声誉来发表评论。我喜欢Severin的情节,但数学不对。如果y为-1,则语句的计算结果为0且不能为> = 20.左下象限(和右上角)应该是阴影,而不是中间?我认为这与负面*负面以及方程式如何转变有关。

编辑:我试着编辑previous answer。我认为这接近于要求的内容。垂直线是边界(实际上没有阴影),可以使用技术here进行编辑。

from fillplots import plot_regions

plotter = plot_regions([

    # positive y+1 values (require positive x+1)
    # plotted in blue in this image
    [(lambda x: 20.0/(1.0+x) - 1.0,),        # False (default) means y > equation
     (-1,)                                   # and y > -1
    ],

    # y < -1 returns a negative value for (y+1) and requires
    # (x+1) to also have a negative value
    # plotted in green in this image
    [(lambda x: 20.0/(1.0+x) - 1.0, True),   # True means y < equation 
     (-1, True)                              # and y < -1
    ],

], xlim=(-40,40), ylim=(-40, 40))

plt.show()

fillplots positive and negative fills

答案 1 :(得分:4)

怎么样?
void (*continuation) (void*, void*, void*),

enter image description here

基本上,您表达为import matplotlib.pyplot as plt from fillplots import plot_regions plotter = plot_regions([ [(lambda x: 20.0/(1.0+x) - 1.0,), ], ]) plt.show() 并要求填写y=f(x)或其中y<0

的区域

答案 2 :(得分:2)

看起来它只适用于一个变量。如果你想绘制

(1+x)*(1+y) >= 20

您必须将其转换为

1 + y >= 20 / (1 + x)

y >= 20 / (1 + x) - 1

正如Severin所做的那样。