2012-06-09 258 views
4

我正在使用BNT的plotgauss2d函數來可視化二維高斯節點的響應如何在網絡中其他地方觀察到證據時發生變化。在MATLAB圖的圖例中設置線條顏色?

eng = jtree_inf_engine(bnet); 
evidence = cell(1, 2) 
eng = enter_evidence(eng, evidence); 
marginals = marginal_nodes(eng, 1); p_1 = marginals.T 
marginals = marginal_nodes(eng, 2); p_2 = marginals.T 
marginals 
clf; plotgauss2d(marginals.mu, marginals.Sigma); 
hold all; 
evidence{1} = 1; 
marginals = marginal_nodes(enter_evidence(eng, evidence), 2); 
p = plotgauss2d(marginals.mu, marginals.Sigma); 
set(p, 'Color', 'green'); 
evidence{1} = 2; 
marginals = marginal_nodes(enter_evidence(eng, evidence), 2); 
p = plotgauss2d(marginals.mu, marginals.Sigma); 
set(p, 'Color', 'red'); 
legend({'Unknown', 'Class 1', 'Class 2'}); 
hold off; 

enter image description here

正如你所看到的,傳說是不拾取改變劇情的色彩,我不得不手動設置。 (可悲的是,plotgauss2d不會自動循環顯示顏色,如你所願。)

有沒有辦法設置圖例中使用的線條顏色呢?

回答

7

PLOTGAUSS2D函數分別返回對應於短軸,長軸和橢圓的三個手柄的矢量。因此,這裏是一個例子,如何來存儲手柄和結束呼叫注:

figure, hold on 
h = zeros(3,3); 
h(:,1) = plotgauss2d(rand(2,1), [1 0.5; 0.5 2]); 
h(:,2) = plotgauss2d(rand(2,1), [2 -0.5; -0.5 1]); 
h(:,3) = plotgauss2d(rand(2,1), [1 0; 0 2]); 
hold off 
set(h(:,1), 'Color','r') 
set(h(:,2), 'Color','g') 
set(h(:,3), 'Color','c') 
legend(h(1,:), {'1','2','3'}) 

screenshot

+0

完美的作品! :) – Vass

2

圖例提取線條顏色,樣式,標記等。

每個plotgauss2d plot必須至少有三個plot s。因此,您的legend命令正在將legend應用到頭三個plot,全部從第一次調用到plotgauss2d

跳過一些代碼,你可以用鼠標右鍵做這個讓你的傳說:

p = plotgauss2d(marginals.mu, marginals.Sigma); 
h = p(1); 
hold all; 
evidence{1} = 1; 
marginals = marginal_nodes(enter_evidence(eng, evidence), 2); 
p = plotgauss2d(marginals.mu, marginals.Sigma); 
h(end+1) = p(1); 
set(p, 'Color', 'green'); 
evidence{1} = 2; 
marginals = marginal_nodes(enter_evidence(eng, evidence), 2); 
p = plotgauss2d(marginals.mu, marginals.Sigma); 
h(end+1) = p(1); 
set(p, 'Color', 'red'); 
legend(h,{'Unknown', 'Class 1', 'Class 2'}); 

現在你造成legend從每個plotgauss2d通話應用legend一個plot

另外,我建議在最後加入一行:

axis equal; 

我想你會喜歡它做什麼。

+0

如果'p'是手柄的線的向量,這將工作。 – tmpearce

+0

@tmpearce我一定是因爲他用他的'set'命令成功設置了這些行的顏色。 – mwengler

相關問題