Python Matplotlib-使用三角形框注释打印

Python Matplotlib-使用三角形框注释打印,python,matplotlib,Python,Matplotlib,我想用一个尖尖的三角形盒子在我的情节的左上角加上注解,盒子里有一个字母,如下图所示。我只能做一个正方形的盒子,但我想要一个三角形的盒子 plt.annotation(“A”, xy=(0.05,0.92), xycoords=“轴分数”, bbox=dict(boxstyle=“square”,fc=“red”)) 从中,您可以绘制任意形状 这并不完全是你想要的,但可能会让你过得去 import numpy as np import matplotlib.pyplot as plt impo

我想用一个尖尖的三角形盒子在我的情节的左上角加上注解,盒子里有一个字母,如下图所示。我只能做一个正方形的盒子,但我想要一个三角形的盒子

plt.annotation(“A”,
xy=(0.05,0.92),
xycoords=“轴分数”,
bbox=dict(boxstyle=“square”,fc=“red”))

从中,您可以绘制任意形状

这并不完全是你想要的,但可能会让你过得去


import numpy as np
import matplotlib.pyplot as plt
import matplotlib.path as mpath
import matplotlib.patches as mpatches
from matplotlib.collections import PatchCollection


def label(xy, text):
    y = xy[1] - 0.15  # shift y-value for label so that it's below the artist
    plt.text(xy[0], y, text, ha="center", family='sans-serif', size=14)


fig, ax = plt.subplots()

patches = []

# add a path patch
Path = mpath.Path
path_data = [
    (Path.MOVETO, [0.00, 0.00]),
    (Path.LINETO, [0.0, 1.0]),
    (Path.LINETO, [1.0, 1.0]),
    (Path.CLOSEPOLY, [0.0, 1.0])
    ]
codes, verts = zip(*path_data)
path = mpath.Path(verts, codes)
patch = mpatches.PathPatch(path)
patches.append(patch)

colors = np.linspace(0, 1, len(patches))
collection = PatchCollection(patches, alpha=0.3)
collection.set_array(np.array(colors))
ax.add_collection(collection)

plt.subplots_adjust(left=0, right=1, bottom=0, top=1)
plt.axis('equal')
plt.axis('off')

plt.show()