在 matplotlib 中绘制重叠线的建议?

新手上路,请多包涵

有没有人对在情节上呈现重叠线的最佳方式有什么建议?我有很多,我的想法是在不重叠的地方用不同颜色的实线,在重叠的地方用虚线,这样所有的颜色都可见,重叠的颜色也能看到。

但是,我该怎么做。

原文由 coffeecup 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.5k
2 个回答

只需降低线条的不透明度,使它们透明。您可以使用 alpha 变量来实现。例子:

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

其中 alpha 范围为 0-1,0 表示不可见。

原文由 Taufiq Rahman 发布,翻译遵循 CC BY-SA 4.0 许可协议

我在高度离散化的情节上遇到了同样的问题。

这里的起始情况:

 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()

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

和我的“解决方案”

 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()

我非常感谢有关改进的建议!

原文由 Markus Dutschke 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题