Matlab文本框alpha不会调整所有背景颜色

时间:2014-05-19 03:38:28

标签: matlab textbox transparency

我有一个非常简单的脚本,它会绘制一些随机的东西,并为textbox添加背景颜色。我试图改变背景的透明度,以便情节显示出来。

我有以下代码:

x = rand(10);
plot(sin(x))
a = annotation('textbox', [0.5 0.5 0.1 0.1], 'String', 'Some Random Text');
set(a, 'BackgroundColor', [.7 .9 .7]);
set(a, 'FaceAlpha', 0.5);

它会产生如下图像:

enter image description here

显然,透明度有效,因为部分背景颜色是透明的。

为什么所有这些都不透明?我在这里做错了吗?

1 个答案:

答案 0 :(得分:1)

更新:Mathworks确认它可能是一个可能在2014b中修复的错误(将于2014年7月发布)。临时解决方法是:

plot(sin(rand(10)))
a = annotation('textbox', [0.5 0.5 0.1 0.1], 'String', 'Some Random Text');
b = annotation('textbox', get(a,'Position'));
set(b, 'BackgroundColor', [0 0.5 0]);
set(b, 'FaceAlpha', 1);
uistack(a,'top')

文本的一个注释,另一个注释背景颜色。


实际上它可能是一个Matlab错误。有关annotations的文档说:

  

FaceAlpha

     

范围内的标量alpha值[0 1]对象背景的透明度。   定义对象背景颜色的程度   透明。值为1(默认值)使背景不透明,a   值为0使背景完全透明(即,   无形)。默认值为1.

我会得出结论,整个背景应该受到影响,但我可以确认在这里情况并非如此(Matlab 2012b)。我可能会向他们提交错误报告。

对于临时修复,将backgroundcolor设置为尽可能明亮(例如[0.9,0.9,0.9]),然后一个人不会立即看到效果。