我希望制作一个图例,其中指定标记的值和线条的值,但不是两者的组合。
以下示例可帮助说明我的目标:
下面是生成的图形:
我想要的是一个名为
以下示例可帮助说明我的目标:
import matplotlib.pyplot as plt
import numpy as np
pi=3.14
xx=np.linspace(0,2*pi,100)
fig = plt.figure()
ax = fig.add_subplot(111)
phases=[0,pi/4,pi/2]
markers=['s','o','^']
for phase,mk in zip(phases,markers):
labeltext='Sine' + '*' + str(phase)
F=[np.sin(x+phase) for x in xx]
ax.plot(xx,F,color='b',marker=mk,label=labeltext)
labeltext='Cosine' + '*' + str(phase)
F=[np.cos(x+phase) for x in xx]
ax.plot(xx,F,color='g',marker=mk,label=labeltext)
hand, labl = ax.get_legend_handles_labels()
#hand, labl = function_to_split(hand,labl,'*')
ax.legend(hand,labl)
plt.savefig('Figure.png')
下面是生成的图形:
![MWE figure](https://istack.dev59.com/OR86H.webp)
function_to_split
的函数,自动生成如下所示的图例:[blue line] Sine
[green line] Cosine
[black square] 0
[black circle] 0.785
[black triangle] 1.57