我目前用matplotlib以这种方式生成我的传奇:
if t==25:
l1,l2 = ax2.plot(x320,vTemp320,'or',x320,vAnaTemp320,'-r')
elif t==50:
l3,l4 = ax2.plot(x320,vTemp320,'ob',x320,vAnaTemp320,'-b')
else:
l5,l6 = ax2.plot(x320,vTemp320,'og',x320,vAnaTemp320,'-g')
plt.legend((l1,l2,l3,l4,l5,l6), ('t=25 Simulation', 't=25 Analytical','t=50 Simulation', 't=50 Analytical','t=500 Simulation', 't=500 Analytical'),
bbox_to_anchor=(-.25, 1), loc=2, borderaxespad=0.,prop={'size':12})
Run Code Online (Sandbox Code Playgroud)
以某种方式工作看1.但我的传说中有重复的信息.
我宁愿分开传说.这样我就有了与时间t对应的不同颜色的线条.作为我的分析解决方案的正常线条是模拟结果的点.
这样的事情
- (红线)t = 25
- (蓝线)t = 50
- (绿线)t = 500
o Simulaton
- 分析解决方案
现在有人能用matplotlib实现这一目标吗?

我喜欢在同一个情节中绘制两组线.每组有两条颜色相同的线,我必须按照一组又一组的顺序绘制它们.我尝试只显示组的图例而不是线条.我怎样才能做到这一点?这是我错误代码的简化:
plot(x1, y1, color1); hold on;
plot(x2, y2, color1); hold on;
plot(x3, y3, color2); hold on;
plot(x4, y4, color2); hold on;
legend({color1, color2})
Run Code Online (Sandbox Code Playgroud)
谢谢!
更新:
一个新的问题,是否有任何方法可以在每一行之后编写图例并且不覆盖之前的图例但附加到它上面?即类似于"坚持"但适用于传奇的东西.
我试图在我的建模数据之上用错误条过度绘制一些经验数据.错误条似乎首先呈现,因此重写(见下文)
我尝试过使用zorder,但我仍然得到相同的结果.我正在使用的代码是
for i in range(1,len(pf)):
pf[i,:] = av_pf_scale * pf[i,:]
pylab.semilogy(pf[0,0:180],pf[i,0:180],color='0.75')
pylab.semilogy(av_pf[0:180],color='r')
pylab.semilogy(av_mie[0:180],color='g', linestyle='-')
pylab.draw()
f = pylab.errorbar(ang,data[j],
yerr = delta_data[j],
fmt = 'o',
markersize = 3,
color = 'b',
zorder = 300,
antialiased = True)
Run Code Online (Sandbox Code Playgroud)
如果有人能告诉我如何使错误栏呈现在顶部,我将不胜感激.

我有数据导致多行被绘制,我想在我的图例中为这些行添加一个标签.我认为使用下面的例子可以更好地证明这一点,
a = np.array([[ 3.57, 1.76, 7.42, 6.52],
[ 1.57, 1.2 , 3.02, 6.88],
[ 2.23, 4.86, 5.12, 2.81],
[ 4.48, 1.38, 2.14, 0.86],
[ 6.68, 1.72, 8.56, 3.23]])
plt.plot(a[:,::2].T, a[:, 1::2].T, 'r', label='data_a')
plt.legend(loc='best')
Run Code Online (Sandbox Code Playgroud)
正如您在Out [23]中看到的那样,该情节产生了5条不同的线条.结果情节看起来像这样

有什么方法可以告诉绘图方法避免多个标签?我不想使用自定义图例(您可以同时指定标签和线条形状)尽可能多.