在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
])
答案 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()
答案 1 :(得分:4)
怎么样?
void (*continuation) (void*, void*, void*),
基本上,您表达为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所做的那样。