Matlab 中条形组的自定义颜色
Custom colors for group of bars in Matlab
我想为 Matlab 条形图中的一组条形设置自定义颜色。
与这里显示的一样,但颜色不同。我该怎么做?
我尝试使用以下代码,但它显示的是堆叠条而不是组。
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
输出:
hBar 是一个 3x1 结构,包含构成绘图的每个单独的补丁对象的属性:
手柄:
hBar =
175.0597 178.0494 180.0494
如果你输入 get(hBar)
你会得到:
3x1 struct array with fields:
Annotation
DisplayName
HitTestArea
BeingDeleted
ButtonDownFcn
Children
...
And so on
...
我想为 Matlab 条形图中的一组条形设置自定义颜色。
与这里显示的一样,但颜色不同。我该怎么做?
我尝试使用以下代码,但它显示的是堆叠条而不是组。
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
输出:
hBar 是一个 3x1 结构,包含构成绘图的每个单独的补丁对象的属性:
手柄:
hBar =
175.0597 178.0494 180.0494
如果你输入 get(hBar)
你会得到:
3x1 struct array with fields:
Annotation
DisplayName
HitTestArea
BeingDeleted
ButtonDownFcn
Children
...
And so on
...