Заполните 4 балла: Matplotlib не позволит мне добавить больше очков - PullRequest
0 голосов
/ 17 февраля 2020

Я пытаюсь сделать ограничительную рамку. У меня есть все координаты. Теперь мне нужно заполнить это пространство. Неважно, какую комбинацию я пробую, она не позволит мне установить ограничение на y.

Что у меня есть:

import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots(figsize=(6, 6))
plt.imshow(np.random.randint(0, 255, (1200, 1200, 3)))

plt.fill_between([1080, 1120], [800, 800], color='blue', alpha=.5)

plt.show()

enter image description here

Что мне нужно:

enter image description here

Ось y должна остановка около 200.

Ответы [ 2 ]

2 голосов
/ 17 февраля 2020

Следующий код должен позволять вам делать то, что вы хотите достичь.

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches

fig, ax = plt.subplots(figsize=(6, 6))
plt.imshow(np.random.randint(0, 255, (1200, 1200, 3)))

left_upper_corner = (200, 300)
width = 400
height = 150

rectangle = matplotlib.patches.Rectanglr(left_upper_corner, width, height, fill=“blue“, alpha=.5)
plt.show()
1 голос
/ 17 февраля 2020

Из документации matplotlib подпись для этой функции: matplotlib.pyplot.fill_between(x, y1, y2=0, where=None, interpolate=False, step=None, *, data=None, **kwargs), где x - массив, а y1/y2 - массив или скаляр. Вы даете массив для x и y1, но никогда y2.

Использование plt.fill_between([1080, 1120], 200, 800, color='blue', alpha=.5) должно дать результат, который вы ищете.

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