gpt4 book ai didi

matlab - Matlab 中条形组的自定义颜色

转载 作者:太空宇宙 更新时间:2023-11-03 20:34:26 24 4
gpt4 key购买 nike

我想为 Matlab 条形图中的一组条形设置自定义颜色。

For example this

就像这里展示的一样,但颜色不同。我该怎么做?

我尝试使用以下代码,但它显示的是堆叠条而不是组。

xdata = [1 2 3];
ydata = [10 20 30; 40 50 60; 5 6 7];
clr = [0 0.8 0;
0.3 0.8 0.8;
0 0 1];

for i = 1:length(xdata)
p = bar(xdata, ydata(i,:));
hold on
set(p,'FaceColor', clr(i,:));
end

感谢任何帮助。谢谢。

最佳答案

您可以通过为您的条形图分配一个句柄来实现,然后更改 FaceColor 属性。句柄实际上是一个句柄数组,每个句柄包含构成条形图的每个单独补丁对象的属性。然后很容易更改您想要的任何属性:

clear
clc

close all

xdata = [1 2 3];
ydata = [10 20 30; 40 50 60; 5 6 7];
clr = [0 0.8 0;
0.3 0.8 0.8;
0 0 1];

hBar = bar(ydata);

for k = 1:numel(hBar)
set(hBar(k),'FaceColor',clr(:,k))

end

输出:

enter image description here

hBar 是一个 3x1 结构,包含构成绘图的每个单独的补丁对象的属性:

handle :

hBar =

175.0597 178.0494 180.0494

如果你输入 get(hBar) 你会得到:

3x1 struct array with fields:

Annotation
DisplayName
HitTestArea
BeingDeleted
ButtonDownFcn
Children
...
And so on
...

关于matlab - Matlab 中条形组的自定义颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28763844/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com