更改Matlab条形图中条形元素的颜色?
如何更改条形图中某个条形元素的颜色?因为我的Matlab版本(2015b)似乎不允许我使用b.LineWidth b.EdgeColor或CData。我的代码如下所示更改Matlab条形图中条形元素的颜色?,matlab,graph,colors,Matlab,Graph,Colors,如何更改条形图中某个条形元素的颜色?因为我的Matlab版本(2015b)似乎不允许我使用b.LineWidth b.EdgeColor或CData。我的代码如下所示 b = bar(1:30); b.FaceColor = 'flat'; [bv,bi] = max(1:30); b(bi).LineWidth = 2; b(bi).EdgeColor = 'red'; 使用b.LineWidth和b.EdgeColor时出现此错误 类matlab.graphics.GraphicsP
b = bar(1:30);
b.FaceColor = 'flat';
[bv,bi] = max(1:30);
b(bi).LineWidth = 2;
b(bi).EdgeColor = 'red';
使用b.LineWidth和b.EdgeColor时出现此错误
类matlab.graphics.GraphicsPlaceholder不存在公共属性线宽。tt中的错误(第5行)
以及使用CData时的错误
b = bar(1:30);
b.FaceColor = 'flat';
[bv,bi] = max(1:30);
b.CData(bi) = [0.4,0.4,0.4];
对于类“matlab.graphics.chart.primitive.Bar”,没有合适的方法、属性或字段“CData”。(我今天刚刚学到了一些新东西!)
看起来,条
有,产生不同的句柄图形对象类型。style
输入参数选择操作模式:
或bar(…,'grouped')
生成一个bar(…,'stacked')
对象。请注意,bar
是默认样式grouped
或bar(…,'hist')
生成一个bar(…,'hist')
对象Patch
hist
模式生成不同的对象类型,我假设输出类型与我的MATLAB版本(R2017a)相同
第一种模式生成的条形图
对象没有CData
属性。有一个FaceColor
和EdgeColor
属性。有关更多信息,请参阅。但请注意,这是一个单独的对象,因此无法索引到控制柄并设置单个条的属性。属性可同时控制所有条形图:
b = bar(1:30);
b.FaceColor = 'flat';
b.LineWidth = 2;
b.EdgeColor = 'red';
例外情况是XData
和YData
属性,每个条有一个值
第二种模式生成的Patch
对象具有CData
属性。操作起来有点复杂,因为面片
具有每个顶点和每条边的坐标。但是,CData
属性可以根据您的需要以不同的方式设置。设置为N
x1数组(带有N
条数),它会为每个条在颜色映射中提供索引(但有关如何解释该索引,请参见轴“Clim
属性)。设置为N
x1x3阵列,它会为每个条提供一个RGB三元组。有关更多信息,请参阅。以下是一个例子:
b = bar(1:30,'hist');
b.FaceColor = 'flat';
b.LineWidth = 2;
b.EdgeColor = 'red';
cols = zeros(30,1,3)+0.5;
cols(5,1,:) = [1,0,0];
b.CData = cols;
[归功于]您确定它没有
线宽或边缘颜色?另有说明。这也都在报告中明确提到了。是的,肯定。这是错误;类“matlab.graphics.chart.primitive.Bar”没有合适的方法、属性或字段“CData”。tt(第5行)b.CData(bi)=[0.4,0.4,0.4]中的错误;以及其他人;类matlab.graphics.GraphicsPlaceholder不存在公共属性线宽。tt(第5行)b(bi)中的错误。线宽=2matlab.graphics.GraphicsPlaceholder
表示您没有正确寻址bar
的输出。请在你的帖子中包含a.b(bi)。线宽=2代码>不在您提供的代码中。请再读一遍。如果你不这么做,我们帮不了你。非常感谢你@Cris Luengo。我想知道如何将FaceColor设置为e.x.蓝色?如果您希望它们都是相同的颜色,只需执行b.FaceColor='blue'
,如果您希望它们除了一个以外都是蓝色,请使用hist
模式,并设置cols=0(30,1,3);cols(:,1,3)=1;cols(5,1,:)=[1,0,0];b、 CData=cols代码>或其他类似的东西