Как заполнить между х и двумя функциями (пересечение)? - PullRequest
0 голосов
/ 28 августа 2018

Как я могу заполнить пересечение между двумя функциями?

У меня есть это:

enter image description here

Мне нужно пересечение между f1 и f2 (мин (f1, f2)). Как это:

enter image description here

Вот мой код:

import matplotlib.pyplot as plt
import numpy as np

x = np.array(np.linspace(0, 10, 1000))
f1 = eval('-x+10')
f2 = eval('x')
plt.plot(x, f1, label='f1')
plt.plot(x, f2, label='f2')
plt.fill_between(x, f1, f2, alpha=.5)
plt.legend()
plt.show()

1 Ответ

0 голосов
/ 28 августа 2018

Ваша проблема сводится к возможности найти поэлементный минимум f1 и f2. Numpy имеет numpy.minimum, который делает именно это. Таким образом, следующий код дает желаемый участок:

import matplotlib.pyplot as plt
import numpy as np

x = np.array(np.linspace(0, 10, 1000))
f1 = eval('-x+10')
f2 = eval('x')
f3 = np.minimum(f1, f2)
plt.plot(x, f1, label='f1')
plt.plot(x, f2, label='f2')
plt.fill_between(x, f3, alpha=.5)
plt.legend()
plt.show()

enter image description here

...