Вычисление области, заполненной matplotlib.pyplot.fill (...) - PullRequest
1 голос
/ 17 июня 2020

Я хотел бы вычислить площадь внутри кривой, определяемой двумя векторами a и b. Для справки кривая выглядит примерно так (pyplot.plot(a,b)):

curve to compute area

Я видел, что matplotlib имеет функцию fill , которая позвольте вам заполнить область, ограниченную кривой:

enter image description here

Мне интересно, есть ли способ получить область, заполненную с помощью той же функции? Это было бы очень полезно, так как другой способ, которым я думаю для вычисления этой области, - это численное интегрирование, гораздо более громоздкое.

Спасибо за ваше время.

1 Ответ

1 голос
/ 17 июня 2020

Если вы действительно хотите найти область, заполненную matplotlib.pyplot.fill (a, b), вы можете использовать ее вывод следующим образом:

def computeArea(pos):
    x, y = (zip(*pos))
    return 0.5 * numpy.abs(numpy.dot(x, numpy.roll(y, 1)) - numpy.dot(y, numpy.roll(x, 1)))

# pyplot.fill(a, b) will return a list of matplotlib.patches.Polygon.
polygon = matplotlib.pyplot.fill(a, b)

# The area of the polygon can be computed as follows:
# (you could also sum the areas of all polygons in the list).
print(computeArea(polygon[0].xy))

Этот метод основан на этот ответ , и он не самый действенный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...