我正在尝试打印直方图,但我需要所有大于特定值(例如250)的值为橙色。在Matlab中更改直方图条的颜色
输出是:
,我需要它是类似的东西: 任何帮助, 这是代码:
fh = figure;
hist(PZ);
saveas(fh, strcat('Figures\window), 'jpg')
close(fh);
我正在尝试打印直方图,但我需要所有大于特定值(例如250)的值为橙色。在Matlab中更改直方图条的颜色
输出是:
,我需要它是类似的东西: 任何帮助, 这是代码:
fh = figure;
hist(PZ);
saveas(fh, strcat('Figures\window), 'jpg')
close(fh);
的一种方式,但在这种情况下,你是有限的颜色它提供了:'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提到的修补程序颜色。
我将数据分成两个值大于250,值小于250.两者均为绝对值。
那么,你这个代码设置直方图的颜色是不同的去了解这是使用bar
绘制你的数据
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’);
我试过这段代码,但是它在y轴(count)上的颜色数据超过了500,但是需要着色比500更大的数据,例如在x轴而不是y轴。 – SMH 2014-09-22 07:28:13
我误解了 - 请参阅编辑的代码。 – 2014-09-22 07:38:54