問題:如何根據稍後在代碼中進行數學比較(我們有兩個條形圖f3和f4,每個條形圖編號的酒吧取決於rowNosMaxSG
,其中最多它將由14個酒吧組成)。在每條if語句後修改每條邊緣顏色
目前下面的數學if語句更改edgecolor
,不幸的是,在每個3-if語句執行後,我都會遇到邊緣顏色重疊,並且此重疊會影響每個圖的整個條,而我想要根據數學比較能夠控制每個條形圖中每個單條的edgecolor
。
截斷代碼(包括數學,比較):
f3= bar(SN, Shift_Grade', 'stacked', 'FaceColor', 'white');
f4= bar(SN(Shift_Gradey ~= 0), Shift_Gradey(Shift_Gradey ~= 0),...
'stacked', 'FaceColor', 'white', 'EdgeColor','green',...
'LineWidth', 2);
%---------------- **Mathematical-Comparison (3-if-statements)** --------------------
if (SN(Shift_Grade' <= 11.3)
set(f3, 'EdgeColor', 'r')
end
if ( SN(11.3 < Shift_Grade') & SN(Shift_Grade' < 16))
set(f3, 'EdgeColor', 'y')
end
if (SN(Shift_Grade' >= 16))
set(f3, 'EdgeColor', 'g')
set(f4, 'EdgeColor', 'g')
end
set(gca, 'Xtick', 1:2:length(SN)+1)
set(gca,'YLim',[0 20])
set(gca,'XLim',[0 length(SN)+1])
希望有一個清晰和明確的答案來解決這個問題是阻礙我的進步。感謝您的時間提前。
好主意Doresoom,我不知道那個。我已經實現了你的想法,但我仍然得到下面的代碼這個錯誤:
???錯誤使用==>set
從cell
轉換爲double
是不可能的。
可重複碼:
SN= [1:14]';
SG= [15.5; 13; 15; 12.2; 13.6; 13.4; 14.2; 9; 17.7; 15; 12.5; 10; 16; 13.6];
SN_UnderDogs= [8; 12];
SN_Mediocre= [1; 2; 3; 4; 5; 6; 7; 10; 11; 14];
SN_Top= [9; 13];
for cc = 1:length(SN)
f3(cc) = bar(cc, SG(cc), 'FaceColor', 'white');
end
if SN(SG <= 11.3)
for SNUD = SN_UnderDogs (1 : length (SN_UnderDogs))
set(get(f3(SNUD),'Children'),'EdgeColor','r')
end
end
if SN(11.3 < SG & SG < 16)
for SNM = SN_Mediocre (1 : length (SN_Mediocre))
set(get(f3(SNM),'Children'),'EdgeColor','y')
end
end
if SN(SG >= 16)
for SNT = SN_Top (1 : length (SN_Top))
set(get(f3(SNT),'Children'),'EdgeColor','g')
end
end
我該如何解決這個問題?提前致謝。
你可能包括什麼是目前發生的事情,什麼它實際上應該看起來像一個形象呢? – 2013-02-15 12:15:43
很抱歉,我無法上傳圖片,因爲我對這個網站不熟悉,因爲我沒有足夠的聲望。但是,我已經解釋了第二段中發生了什麼。如果有什麼不清楚請讓我知道,所以我進一步解釋。 – Hans 2013-02-15 13:02:47
也許你可以使用'bar(1:10,1:12:120)'或類似的東西來製作一個可重複使用的小例子。 – 2013-02-15 13:10:43