我有一个条形图 (2D),我想将另一个向量值 > 1 的部分的背景设为红色,即
例子:
图 = [2 3 5 4 9 1 7]颜色 = [0 2 2 1 0 1 2]
因此条形图将显示通常的条形图,并且后面的背景(包括条形图之间的空间)在“3”、“5”和“7”(位置 2、3、7)的条形图后面被涂成红色
蓝色示例:
这有可能吗?
谢谢
是的,这是可能的
%# define some parameters
backgroundColor = 'r';
backgroundWidth = 0.9;
foregroundWidth = 0.3;
%# collect the data
graph = [2 3 5 4 9 1 7];
color = [0 2 2 1 0 1 2];
x = 0:length(graph)-1;
colIdx = color>1;
bgBarHeight = max(graph)+1; %# background bars are 1 taller than max
%# first, plot red bars - I plot them as background as in your question,
%# not as transparent overlay as in your example (see yuk's answer for that)
bar(x,colIdx*bgBarHeight,backgroundWidth,'FaceColor',backgroundColor,'EdgeColor','none')
%# use hold on to prevent background from disappearing
hold on
%# then, plot foreground bars. Use hold on so that the background isn't lost
bar(x,graph,foregroundWidth,'FaceColor','k')
%# label the axes
xlabel('X Axis')
ylabel('Y Axis')
我是一名优秀的程序员,十分优秀!