建议在matplotlib中绘制重叠线?

cof*_*cup 10 python matplotlib

有没有人建议在情节上呈现重叠线的最佳方法是什么?我有很多这样的东西,我想到了不同颜色的完整线条,它们不重叠,并且在它们重叠的地方有虚线,这样所有颜色都可见,并且可以看到重叠的颜色.

但是,我怎么做.

Inc*_*nnu 12

只需减少线条的不透明度,使它们透明.你可以使用alpha变量实现这一点.例:

plt.plot(x, y, alpha=0.7)

其中alpha范围为0-1,0为不可见.


Wil*_*idi 8

想象一下您的熊猫数据框被称为响应时间,然后您可以使用 alpha 为您的图表设置不同的不透明度。检查前后的图片在此处输入图片说明使用阿尔法。

plt.figure(figsize=(15, 7))
plt.plot(respone_times,alpha=0.5)
plt.title('a sample title')
plt.grid(True)
plt.show()
Run Code Online (Sandbox Code Playgroud)


Mar*_*hke 6

在高度离散的情节中,我也有同样的问题。

这里是起始情况:

import matplotlib.pyplot as plt
grid=[x for x in range(10)]
graphs=[
        [1,1,1,4,4,4,3,5,6,0],
        [1,1,1,5,5,5,3,5,6,0],
        [1,1,1,0,0,3,3,2,4,0],
        [1,2,4,4,3,2,3,2,4,0],
        [1,2,3,3,4,4,3,2,6,0],
        [1,1,3,3,0,3,3,5,4,3],
        ]

for gg,graph in enumerate(graphs):
    plt.plot(grid,graph,label='g'+str(gg))

plt.legend(loc=3,bbox_to_anchor=(1,0))
plt.show()
Run Code Online (Sandbox Code Playgroud)

没有人能说出绿线和蓝线的确切位置

和我的“解决方案”

import matplotlib.pyplot as plt
grid=[x for x in range(10)]
graphs=[
        [1,1,1,4,4,4,3,5,6,0],
        [1,1,1,5,5,5,3,5,6,0],
        [1,1,1,0,0,3,3,2,4,0],
        [1,2,4,4,3,2,3,2,4,0],
        [1,2,3,3,4,4,3,2,6,0],
        [1,1,3,3,0,3,3,5,4,3],
        ]

for gg,graph in enumerate(graphs):
    lw=10-8*gg/len(graphs)
    ls=['-','--','-.',':'][gg%4]
    plt.plot(grid,graph,label='g'+str(gg), linestyle=ls, linewidth=lw)

plt.legend(loc=3,bbox_to_anchor=(1,0))
plt.show()
Run Code Online (Sandbox Code Playgroud)

感谢您提出改进建议!

  • 恩典解决方案。 (2认同)