2013-06-21 2 views
0

나는 Matlab에서 전기를 그리려고합니다. 노드의 이름과 각 가장자리의 레이블을 표시하고 싶습니다. 특정 가장자리의 레이블을 설정합니다. 그리고 가장자리의 레이블을 표시하도록 전기의 옵션을 설정하지만 여전히 표시되지 않습니다. 내가 뭘 놓치고 있니? 목록을 통해 가장자리의 이름을 설정하는 방법이 있습니까? 아니면 하나씩해야합니까?BioGraph에서 가장자리의 레이블을 표시하는 방법

감사합니다. 여기

코드입니다 :

cm = sparse([0 1 1 0 0;1 0 0 1 1;1 0 0 0 0;0 0 0 0 1;1 0 1 0 0]); 
names = {'E1','E2','E3','E4','E5'}; 
bg = biograph(cm,names,'LayoutType','radial','ShowTextInNodes','Label'); 
bg.nodes(1).Shape = 'circle'; 
bg.nodes(1).Size = [2 2]; 
bg.nodes(1).color = [.5 .7 1]; 
bg.edges(1).LineColor =[.5 .7 1]; 
bg.edges(1).Label = 'labelzz'; 
bg.edges(1).Description = 'Descriptionzz'; 
get(bg); 
get(bg.edges(1)); 
gObj = view(bg); 

그리고이 결과 : 그래프의

Biograph object with 5 nodes and 9 edges. 

       ID: '' 

      Label: '' 

     Description: '' 

     LayoutType: 'radial' 

     LayoutScale: 1 

      Scale: 1 

    NodeAutoSize: 'on' 

    ShowTextInNodes: 'label' 

     EdgeType: 'curved' 

    EdgeTextColor: [0 0 0] 

     ShowArrows: 'on' 

     ArrowSize: 8 

     ShowWeights: 'off' 

    EdgeFontSize: 8 

    NodeCallbacks: @(node)inspect(node) 

    EdgeCallbacks: @(edge)inspect(edge) 

CustomNodeDrawFcn: [] 

      Nodes: [5x1 biograph.node] 

      Edges: [9x1 biograph.edge] 

     ID: 'E1 -> E2' 

     Label: 'labelzz' 

Description: 'Descriptionzz' 

    Weight: 1 

    LineWidth: 0.5000 

    LineColor: [0.5000 0.7000 1] 

    UserData: [] 

이미지 : http://i.stack.imgur.com/n34Rt.png

+0

안녕 마틴, 답장을 보내 주셔서 감사합니다. 'bg.edges (1) .Label ='labelzz ';을 사용하여 무엇을 의미합니까? - 가장자리 라벨을 정의하기 위해 8 행에서 사용하고 있습니까? – user1203996

+0

이것은 생물 정보 도구 상자 사용자들에게 공통적 인 문제인 것으로 보입니다. Matlab Answers에서 답을 찾지 못했습니다. 도구 상자 작성자에게 연락하여 해결책을 찾아야 할 것입니다. –

+0

고맙습니다. – user1203996

답변

1

에지 레이블 또는 ID를 표시 할 수 없습니다. 생체 속성 ShowWeights를 'on'으로 설정하여 가장자리 가중치 만 표시 할 수 있습니다.

0

Matlab의 자서전은 가장자리에 숫자 가중치를 표시하지만 임의의 텍스트를 표시하도록 코드를 쉽게 수정할 수 있습니다. 파일에서

: 도구 상자 \ \ bioinfo \ bioinfo \ @biograph \ @edge \ hgUpdate.m

2 다음 줄

set(h.hgline,'UserData',text(txy(1),txy(2),[' ' num2str(h.Weight) ' '] ,... 

'String',[' ' num2str(h.Weight) ' '],... 

로 교체

set(h.hgline,'UserData',text(txy(1),txy(2),[' ' h.Label ' '] ,... 

'String',[' ' h.Label ' '],... 

가장자리의 '라벨'속성에 텍스트를 설정하면됩니다. 예 :

graph = biograph([0 1 ; 1 0], {'node1', 'node2'}, 'ShowWeights', 'on'); 
graph.Edges(1).Label = 'Edge 1-2'; 
graph.Edges(2).Label = 'Edge 2-1'; 
view(graph); 
관련 문제