首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >取决于条件的图形背景的颜色指定区域

取决于条件的图形背景的颜色指定区域
EN

Stack Overflow用户
提问于 2010-07-10 05:48:52
回答 2查看 3.6K关注 0票数 3

我有一个条形图(2D),我想将另一个向量的值大于1的部分的背景设为红色。

示例:

图=2 3 5 4 9 1 7颜色=0 2 2 1 0 1 2

因此,柱状图将显示通常的条形图,并且背景(包括条形图之间的空间)在"3“、"5”和"7“(位置2、3、7)的条形图后面是红色的。

以蓝色为例:

这有没有可能呢?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-10 08:38:16

是的,这是可能的

代码语言:javascript
复制
%# 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')
票数 4
EN

Stack Overflow用户

发布于 2010-07-11 03:11:27

稍微修改一下Jonas代码,使背景条透明,并纠正一些错误:

代码语言:javascript
复制
%# define some parameters
foregroundColor = 'k';
backgroundColor = 'r';
foregroundWidth = 0.3;
backgroundWidth = 0.9;

%# 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 foreground bars
b1 = bar(x,graph,foregroundWidth,'FaceColor',foregroundColor);
hold on
%# then, plot background bars. 
%# they will overlap foreground bars, but we'll make them transparent later
b2 = bar(x,colIdx*bgBarHeight,backgroundWidth,'FaceColor',backgroundColor,'EdgeColor','none');
hold off

%# make background bars transparent
pch = get(b2,'child'); %# get patch objects from barseries object
set(pch,'FaceAlpha',0.3); %# set transparency

xlabel('X Axis')
ylabel('Y Axis')
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3216772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档