使用Jupyther笔记本我经常发现自己写下以下内容来改变图的alpha值:
plot(x,y1, alpha=.6)
plot(x,y2, alpha=.6)
...
我希望在rcParameters中找到匹配的值,以便全局更改为选项:
plt.rcParams['lines.alpha'] = 0.6 #not working
更改所有绘图的Alpha值有哪些可行的解决方法?
答案 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)
请注意循环器的顺序,因为上述顺序将依次循环显示颜色,线条,字母。