相关疑难解决方法(0)

如何在matplotlib中制作自定义图例

我目前用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实现这一目标吗?

目前的形象

python matplotlib

41
推荐指数
1
解决办法
4万
查看次数

线组的图例

我喜欢在同一个情节中绘制两组线.每组有两条颜色相同的线,我必须按照一组又一组的顺序绘制它们.我尝试只显示组的图例而不是线条.我怎样才能做到这一点?这是我错误代码的简化:

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)

谢谢!


更新:

一个新的问题,是否有任何方法可以在每一行之后编写图例并且不覆盖之前的图例但附加到它上面?即类似于"坚持"但适用于传奇的东西.

matlab plot

20
推荐指数
3
解决办法
4万
查看次数

如何使用Matplotlib强制使用错误栏进行渲染

我试图在我的建模数据之上用错误条过度绘制一些经验数据.错误条似乎首先呈现,因此重写(见下文)

我尝试过使用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)

如果有人能告诉我如何使错误栏呈现在顶部,我将不胜感激.

Mulitplot

python matplotlib

15
推荐指数
1
解决办法
6102
查看次数

pyplot在图例中组合了多个线条标签

我有数据导致多行被绘制,我想在我的图例中为这些行添加一个标签.我认为使用下面的例子可以更好地证明这一点,

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条不同的线条.结果情节看起来像这样 多线图的传说

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

python plot matplotlib legend

12
推荐指数
5
解决办法
1万
查看次数

标签 统计

matplotlib ×3

python ×3

plot ×2

legend ×1

matlab ×1