Как я могу заполнить пересечение двух функций?
У меня есть это:
Мне нужно пересечение между f1 и f2 (min (f1, f2)). Как это:
Вот мой код:
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()
Ваша проблема сводится к тому, что можно найти элементарный минимум 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()