我试图打印一个直方图,但我需要所有的数值是大于一个特定的值(例如,250)是橙色的。
产出如下:
我需要这样的东西:
如果有任何帮助,这就是代码:
fh = figure;
hist(PZ);
saveas(fh, strcat('Figures\window), 'jpg')
close(fh);
发布于 2014-09-22 07:15:01
其中一种方法是使用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提到的那样。
发布于 2014-09-22 07:11:45
我会将数据分成两个大于250个的groups.Values和小于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’);
https://stackoverflow.com/questions/25968249
复制相似问题