Я делаю иллюстрации для своей статьи на python, используя библиотеку matplotlib
. На этой иллюстрации у меня много линий, полигонов, кругов и т. Д. Но тогда я также хочу вставить изображение .png
извне.Вставка/настройка png в сюжет [matplotlib]
Вот что я пытаюсь сделать, до сих пор:
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.patches import Polygon
fig, ax = plt.subplots()
plt.tick_params(axis='x', which='both', bottom='off', top='off', labelbottom='off')
ax.axis('off')
# drawing circle
ax.add_patch(
plt.Circle((0, 0), 0.5, color = 'black')
)
# drawing polygon
ax.add_patch(
Polygon(
[[0,0], [20, 15], [20, 40]],
closed=True, fill=False, lw=1)
)
# importing image
im = plt.imread("frame.png")
# defining image position/size
rect = 0.5, 0.4, 0.4, 0.4 # What should these values be?
newax = fig.add_axes(rect, anchor='NE', zorder=1)
newax.imshow(im)
newax.axis('off')
ax.set_aspect(1)
ax.set_xlim(0, 60)
ax.set_ylim(0, 40)
plt.show()
Таким образом, вопрос, как определить значения для rect = 0.5, 0.4, 0.4, 0.4
? Например, я хочу, чтобы нижний левый угол моего .png
находился в точке [20, 15]
, и я хочу, чтобы его высота была 25
.
Это результирующее изображение:
Но я хочу, чтобы это манекен рамки быть отрегулирована на мои точки многоугольника, как это (это один скорректированные в фотошопе):
PS Вот link на frame.png
, чтобы поэкспериментировать с.
Спасибо, это работает для меня. Не думал, что ответ будет таким легким. Во всяком случае, извините меня, если вопрос был слишком глупым. –