我正在嘗試打印直方圖,但我需要所有大於特定值(例如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