如何全局设置Matplotlib图的alpha值

Jul*_*l3k 6 python plot alpha matplotlib

使用Jupyther笔记本,我经常发现自己反复编写以下内容以更改绘图的Alpha值:

plot(x,y1, alpha=.6)
plot(x,y2, alpha=.6)
...
Run Code Online (Sandbox Code Playgroud)

我希望在rcParameters中找到一个匹配的值,以更改为全局选项,例如:

plt.rcParams['lines.alpha'] = 0.6 #not working
Run Code Online (Sandbox Code Playgroud)

有什么可能的解决方法来更改所有图的alpha值?

Jim*_*ard 5

不幸的是,根据他们如何进入:

如果需要所有图形元素透明,则当前没有全局Alpha设置,但是可以在单个元素上设置Alpha通道。

因此,目前无法通过matplotlib 做到这一点


我通常对全局值所做的是定义一个外部配置文件,定义值并将其导入到适当的脚本中。

my_conf.py

# Parameters:

# matplotlib alpha
ALPHA = .6
Run Code Online (Sandbox Code Playgroud)

my_plots.py

import conf.py as CONF

plot(x,y1, alpha=CONF.ALPHA)
plot(x,y2, alpha=CONF.ALPHA)
Run Code Online (Sandbox Code Playgroud)

这通常有助于使配置保持分离并易于更新。


Jul*_*l3k 2

在 matplotlib 团队的帮助下回答我自己的问题,以下代码将通过全局更改线条颜色的 alpha 值来完成这项工作:

alpha = 0.6
to_rgba = matplotlib.colors.ColorConverter().to_rgba

for i, col in enumerate(plt.rcParams['axes.color_cycle']):
    plt.rcParams['axes.color_cycle'][i] = to_rgba(col, alpha)
Run Code Online (Sandbox Code Playgroud)

注意:在 matplotlib 1.5 中将color_cycle被弃用并替换为prop_cycle

通过 rcParams 设置 alpha 值的功能也已添加到版本 2.1 的愿望清单中