如何在全局范围内设置matplotlib图的alpha值

时间:2015-09-24 09:02:39

标签: python matplotlib plot alpha

使用Jupyther笔记本我经常发现自己写下以下内容来改变图的alpha值:

plot(x,y1, alpha=.6)
plot(x,y2, alpha=.6)
...

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

plt.rcParams['lines.alpha'] = 0.6 #not working

更改所有绘图的Alpha值有哪些可行的解决方法?

4 个答案:

答案 0 :(得分:5)

不幸的是,根据他们的How to条目:

  

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

所以,通过matplotlib 目前无法做到这一点

我通常为全局值做的是定义外部配置文件,定义值并将它们导入相应的脚本。

<强> my_conf.py

# Parameters:

# matplotlib alpha
ALPHA = .6

<强> my_plots.py

import conf.py as CONF

plot(x,y1, alpha=CONF.ALPHA)
plot(x,y2, alpha=CONF.ALPHA)

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

答案 1 :(得分: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)

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

设置alpha值超过rcParams的能力也被添加到版本2.1的心愿单中

答案 2 :(得分:1)

更新版本(也许更干净):

from cycler import cycler
alpha = 0.5
to_rgba = matplotlib.colors.ColorConverter().to_rgba#
color_list=[]
for i, col in enumerate(plt.rcParams['axes.prop_cycle']):
    color_list.append(to_rgba(col['color'], alpha))
plt.rcParams['axes.prop_cycle'] = cycler(color=color_list)

答案 3 :(得分:0)

另一种方法是指定Alpha并将其传递给rcParams

    plt.rcParams['axes.prop_cycle'] = cycler(alpha=[0.5])

请记住,这可以与任何其他循环属性(例如颜色和线条样式)结合使用。

    cyc_color = cycler(color=['r','b','g')
    cyc_lines = cycler(linestyle=['-', '--', ':'])
    cyc_alpha = cycler(alpha=[0.5, 0.3])
    cyc = (cyc_alpha * cyc_lines * cyc_color)

请注意循环器的顺序,因为上述顺序将依次循环显示颜色,线条,字母。