我正在尝试打印直方图,但我需要所有大于特定值(例如250)的值为橙色。
输出是:
我需要它是这样的: 任何帮助, 这是代码:
fh = figure;
hist(PZ);
saveas(fh, strcat('Figures\window), 'jpg')
close(fh);
答案 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提到的补丁颜色。