【发布时间】:2019-08-06 01:39:27
【问题描述】:
我是 python 新手。问题在于,假设我们有两个参数 x 和 y,以及四个函数 f_1、f_2、f_3 和 f_4。假设我们知道:
- 如果 (x
- 如果 (5
- 如果 (y
- 如果 y > x+5 则函数 f_4 是最大函数。
我需要绘制一个 x 轴 = x 和 y 轴 = y 的图,显示每个函数是最大函数的区域。
我使用了下面的代码,但是下面显示的结果图并不准确。
import numpy as np
from matplotlib import pyplot as plt
x = np.arange(0,10,.1)
y = np.arange(0,15,.2)
x,y = np.meshgrid(x,y)
maxf = np.zeros(shape = x)
maxf.fill(-9999.99)
for i in range(len(x)):
for j in range(len(y)):
if j<i<5 or j<5<i:
maxf[i,j] =1
elif i<5<=j<i+5 or 5<=j<i:
maxf[i,j] =2
elif 5<i<=j<i+5 or i<=j<5:
maxf[i,j] =3
elif i == 5 and j<5:
maxf[i,j]=1
elif i == 5 and 5<=j<10:
maxf[i,j]=2
elif j >= 5+i:
maxf[i,j]=4
plt.contourf(x,y,maxf)
plt.colorbar()
plt.show()
结果应该是这样的:
【问题讨论】:
-
请发布您尝试过的内容。
-
您的问题到底是什么?你尝试了什么?
-
@BenT 这实际上是我之前问过你的问题的简化版本,正如我在那个问题中提到的那样,当我使用 -9999.99 而不是 np.nan 时,情节变得非常奇怪。所以,我只是简化了每个函数是最大函数的条件,看看在这些新条件下是否更容易绘制图
-
所以发布情节和你用来制作它的代码。如果我们看不到您拥有的东西,我们将无能为力...
-
创建
maxf时需要x.shape
标签: python python-3.x numpy matplotlib