Python 如何在matplotlib中创建自定义图例标记,即直角三角形

Python 如何在matplotlib中创建自定义图例标记,即直角三角形,python,matplotlib,label,legend-properties,Python,Matplotlib,Label,Legend Properties,我有一个python的图(如下)。 我想使用ax.get\u legend\u handles\u标签制作双直角三角形作为我的图例。 我想要这个(下面的图例形状)你能帮我用matplotlib.Line2D获得双直角三角形的形状作为图例(下面)吗? 我尝试了以下代码,但失败了 #define right angles triangles angle=180 verts_ob = [[-1, -1], [1, -1], [1, 1], [-1, -1]] verts = mpl.markers

我有一个python的图(如下)。 我想使用ax.get\u legend\u handles\u标签制作双直角三角形作为我的图例。

我想要这个(下面的图例形状)你能帮我用matplotlib.Line2D获得双直角三角形的形状作为图例(下面)吗?

我尝试了以下代码,但失败了

#define right angles triangles
angle=180
verts_ob = [[-1, -1], [1, -1], [1, 1], [-1, -1]]
verts = mpl.markers.MarkerStyle(marker=verts_ob)
verts._transform = verts.get_transform().rotate_deg(angle)

##apply mlines.Line2D to get shapes of the desired marker
import matplotlib.lines as mlines
Del_triangle_cna = mlines.Line2D([], [], color='#001261', marker=verts_ob, linestyle='None',mec='white', mfc='#C3B477', mew=1, markersize=100)
Neut_triangle_cna = mlines.Line2D([], [], color='#001261', marker=r'$\blacktriangleleft/\blacktriangleright$', linestyle='None',mec='white', mfc='grey', mew=1,markersize=200)
感谢您的帮助。

按照上的示例,您可以创建自己的处理程序:

导入matplotlib.pyplot作为plt
将matplotlib.patches作为MPatch导入
双三角类:
定义初始(自、左、右):
self.color\u left=color\u left
self.color\u right=color\u right
类DoubleTriangleHandler:
def legend_艺术家(自身、legend、原始把手、fontsize、把手盒):
x、 y=车把箱.xdescent,车把箱.ydescent
w、 h=车把箱.宽度,车把箱.高度
间隙=h/3
三角形左=mpatches.多边形([[x,y+gap],[x,y+h],[x+w-gap,y+h],
facecolor=orig_handle.color_left,
edgecolor='black',lw=1,transform=handlebox.get\u transform())
三角形_right=mpatches.多边形([[x+gap,y],[x+w,y+h-gap],[x+w,y]],
facecolor=orig_handle.color_right,
edgecolor='black',lw=1,transform=handlebox.get\u transform())
车把箱。添加艺术家(三角形左)
车把箱。添加艺术家(三角形右)
返回左三角形,右三角形
plt.图例([DoubleTriangle('red','green')、DoubleTriangle('blue','yellow'))],
[“红-绿”,“蓝-黄”],
handler_map={DoubleTriangle:DoubleTriangleHandler()})
plt.show()

按照上的示例,您可以创建自己的处理程序:

导入matplotlib.pyplot作为plt
将matplotlib.patches作为MPatch导入
双三角类:
定义初始(自、左、右):
self.color\u left=color\u left
self.color\u right=color\u right
类DoubleTriangleHandler:
def legend_艺术家(自身、legend、原始把手、fontsize、把手盒):
x、 y=车把箱.xdescent,车把箱.ydescent
w、 h=车把箱.宽度,车把箱.高度
间隙=h/3
三角形左=mpatches.多边形([[x,y+gap],[x,y+h],[x+w-gap,y+h],
facecolor=orig_handle.color_left,
edgecolor='black',lw=1,transform=handlebox.get\u transform())
三角形_right=mpatches.多边形([[x+gap,y],[x+w,y+h-gap],[x+w,y]],
facecolor=orig_handle.color_right,
edgecolor='black',lw=1,transform=handlebox.get\u transform())
车把箱。添加艺术家(三角形左)
车把箱。添加艺术家(三角形右)
返回左三角形,右三角形
plt.图例([DoubleTriangle('red','green')、DoubleTriangle('blue','yellow'))],
[“红-绿”,“蓝-黄”],
handler_map={DoubleTriangle:DoubleTriangleHandler()})
plt.show()

给出了一个将椭圆添加到图例中的示例。可以修改它以添加一个
多边形
。对不起,我如何将直角三角形叠加为图中的三角形?它不是markers的一部分。给出将椭圆添加到图例的示例。可以修改它以添加一个
多边形
。对不起,我如何将直角三角形叠加为图中的三角形?这不是标记的一部分。如果这解决了你的问题,你可以考虑投票和/或答案作为接受。如果这解决了你的问题,你可以考虑投票和/或答案作为接受。