Matplotlib 透明线图绘制

186

我正在使用 matplotlib 绘制两条相似的轨迹,希望能够使每条线条具有部分透明度,这样后一条红色线不会遮挡住前面的蓝色线。

alt text

编辑: 这里是具有透明线条的图片。

alt text

3个回答

354

简单明了:

plt.plot(x, y, 'r-', alpha=0.7)

我知道我没有添加任何新内容,但直接的答案应该是可见的。


1
我看不到alpha参数的文档在哪里。您能否更新答案并包括文档所在位置? - Alex Spurling
4
@AlexSpurling,plt.plot函数接受关键字参数Line2D,其中alpha参数是其属性之一。 - WaterGenie

38

在绘制了所有的线之后,我能够按以下方式设置它们的透明度:

for l in fig_field.gca().lines:
    l.set_alpha(.7)

编辑: 请查看Joe在评论中的答案。


31
所有的matplotlib绘图函数都直接接受一个alpha参数。你可以这样简单地编写代码:plt.plot(x, y, 'r-', alpha=0.7) - Joe Kington
4
我很乐意看到更新后的图片--请问你能否将它添加到这个答案中呢? - Sven Marnach
4
似乎是在应用透明度之前组合线条。是否有一种方法可以相反地进行操作,使透明的线条相互叠加以变得更暗? - naught101

4

这真的取决于您用来绘制线条的功能,但是尝试查看您正在使用的功能是否需要 alpha 值,并将其设置为 0.5。如果这不起作用,请尝试获取线对象并直接设置其 alpha 值。


2
@joe-kington的评论说所有的matplotlib函数都需要一个alpha参数,你的回答需要更正还是他的评论? - U3.1415926

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接