Можно ли заполнить ax.annotate
wedge
цветным градиентом? например вместо красного цветовой градиент от синего до зеленого. Начиная с xy
и заканчивая xytext
.
import matplotlib.pyplot as plt
plt.figure(1, figsize=(3,3))
ax = plt.subplot()
ax.annotate("Wedge",
xy=(5, 5), xycoords='data',
xytext=(30, 20), textcoords='data',
arrowprops=dict(arrowstyle=("wedge, tail_width=2,shrink_factor=0.5"),
connectionstyle="arc3,rad=0.1",fc="#ff0000",ec="#ff0000",shrinkA=10,),
)
ax.set_xlim(0, 50)
ax.set_ylim(0, 50)
plt.show()

Обновление
Я нашел хорошее решение в другом посте и подумал, может быть, я просто смогу заменить Путь в path = Path([[1,1],[2,1],[2,3],[1,1]])
на ax.annotate ...
, но он не работает.
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.patches import PathPatch
fig = plt.figure()
ax = fig.add_subplot(111, aspect='equal')
path = ax.annotate("Wedge",
xy=(5, 5), xycoords='data',
xytext=(10, 40), textcoords='data',
arrowprops=dict(arrowstyle=("wedge, tail_width=2,shrink_factor=0.5"),
connectionstyle="arc3,rad=0.2",fc="#ff0000",ec="#ff0000",shrinkA=10,),
)
patch = PathPatch(path, facecolor='none')
ax.add_patch(patch)
Z, Z2 = np.meshgrid(np.linspace(0,1), np.linspace(0,1))
im = plt.imshow(Z-Z2, interpolation='bilinear', cmap=plt.cm.RdYlGn,
origin='lower', extent=[0, 1, 0, 1],
clip_path=patch, clip_on=True)
im.set_clip_path(patch)
ax.set_xlim(0, 50)
ax.set_ylim(0, 50)
plt.show()