【发布时间】:2019-06-01 22:46:51
【问题描述】:
我在 Matlab 中有以下代码,它为我生成了一个有用的图。现在我想让这个情节与另一个情节在颜色上相当。出于这个原因,一些颜色应该被切换:colors for...
“拆分前总 EON”与“拆分后总 EON”
'Pre split pure EON' with 'Post split pure EON'
“拆分前总 RWE”与“拆分后总 RWE”
“拆分前纯 RWE”与“拆分后纯 RWE”。
仅此而已,但我不知道该怎么做,因为颜色是自动分配的...
clear all
close all
values = [4 1 11 2 3; 4 1 5 2 -10];
names = {'Pre split total EON' 'Post split total EON'...
'Pre split pure EON' 'Post split pure EON' 'Post split Uniper';...
'Pre split total RWE' 'Post split total RWE'...
'Pre split pure RWE' 'Post split pure RWE' 'PostSplitInnogy'};
categories = {'EON','RWE'};
figure;
b = bar(values,'FaceColor','flat');
ticksList = b(1).XData+arrayfun(@(x)x.XOffset, b)';
xticks(ticksList(:))
xticklabels([names(1,:)';names(2,:)'])
xtickangle(90)
ax1 = gca;
ax2 = axes('Position', get(ax1, 'Position'),'Color', 'none');
set(ax2, 'XAxisLocation', 'top','YAxisLocation','Right');
set(ax2, 'XLim', get(ax1, 'XLim'),'YLim', get(ax1, 'YLim'));
set(ax2, 'YTick', []);
xticks(b(1).XData)
xticklabels(categories)
for k = 1:size(values,2) % for fancier colors.
b(k).CData = k;
end
【问题讨论】:
-
"...names(1) 的颜色应该用names(2) 切换,names(3) 应该用names(4)" 切换。我是说 ... !?请原谅我不明白这一点。
-
现在应该很清楚了,请参阅编辑。
-
"'Pre split total EON' with 'Post split total EON'" .请原谅我再问一次,但为了清楚起见,您想切换这两个条的颜色吗?如,您希望
Pre split total EON应该是blue,而Post split total EON应该是dark blue/purple。对吗? -
如果你使用别人的代码,请正确引用。在这种情况下,您帖子中的代码来自here。
-
您可以按所需顺序绘制它们,也可以按照
bar文档中的this section 中所述手动指定各个条形颜色。
标签: matlab plot colors matlab-figure