在Matlab中更改直方图条的颜色

时间:2014-09-22 06:59:28

标签: matlab

我正在尝试打印直方图,但我需要所有大于特定值(例如250)的值为橙色。

输出是: enter image description here

我需要它是这样的: enter image description here 任何帮助, 这是代码:

    fh = figure;
    hist(PZ);
    saveas(fh, strcat('Figures\window), 'jpg')
    close(fh);

2 个答案:

答案 0 :(得分:1)

我会将数据分成两组。值大于250,值小于250.两者都是绝对值。

然后,您可以将此代码设置为不同的直方图颜色

hist(data1);
hold on;
hist(data2);
h = findobj(gca,’Type’,’patch’);
display(h) 
set(h(1),’FaceColor’,’b’,’EdgeColor’,’k’);
set(h(2),’FaceColor’,rgb('orange'),’EdgeColor’,’k’);

答案 1 :(得分:1)

解决此问题的一种方法是使用bar绘制数据,但在这种情况下,您只能使用它提供的颜色:'b' | 'r' | 'g' | 'c' | 'm' | 'y' | 'k' | 'w'。这是一个示例代码:

%// Generate data
data = randn(2000,1);
bins = -5:5;
[N,X] = hist(data,bins);
%% //Color by count
LIMIT_VAL = 500;
figure();
bar(X,N,'b');hold on;
bar(X,N.*(N<LIMIT_VAL),'r'); hold off;
%% //Color by bin position
LIMIT_VAL = 2;
figure();
bar(X,N,'b');hold on;
bar(X(abs(X)>=LIMIT_VAL),N(abs(X)>=LIMIT_VAL),'r'); hold off;

另一种方法是通过修改@lakesh提到的补丁颜色。