2017-12-07 14 views
0

안녕하세요, cytoscape.js를 사용하여 동심 그래프를 표시하려고합니다. 데이터에는 약 100 개의 노드가 있습니다. '동심'을 선택한 이유는 내 그래프를 3 개의 레이어 (예 : 내부, 중간, 외부)로 표시하기 때문입니다. 각 노드에는 '레벨'이라는 속성이 있으며 1-3에 할당됩니다. 문제는 노드 레이블의 font-size 때문입니다. 그러나 레이블 크기를 변경하면 레이블이 너무 크게 남아있어서 크게 확대하지 않으면 간신히 볼 수 있습니다. 다음 example cytoscapejs graph노드 수가 많은 경우 cytoscape.js 동심 레이아웃에서 노드 레이블 크기를 설정하는 방법

내가 현재 cytoscape.js 스타일과 레이아웃을 설정하는 방법입니다 : 여기 처럼 그래프가 현재 모습입니다 내가 다른 높이, 폭, 글꼴 크기의 몇 가지를 시도

var style = [ 
{ 
    selector: "node[type = 'A']", 
    style: { 
     "background-color": "blue", 
     "label": "data(id)", 
     "height": 50, 
     "width": 50, 
     "font-size": "20px" 
    } 
}, 
{ 
    selector: "node[type = 'B']", 
    style: { 
     "background-color": "green", 
     "label": "data(id)", 
     "font-size": "80px", 
     "height": 50, 
     "width": 50 
    } 
}, 
{ 
    selector: "node[type= 'C']", 
    style: { 
     "background-color": "red", 
     "label": "data(id)", 
     "font-size": "30px", 
     "height": 50, 
     "width": 50 
    } 
}, 
{ 
    selector: "edge", 
    style: { 
     "curve-style": "haystack", 
     "haystack-radius": 0, 
     "width": 10, 
     "opacity": 0.5, 
     "line-color": "#a8eae5" 
    } 
} 
]; 

// define concentric option 
var concentricOptions = { 
name: "concentric", 
concentric: function (node) { 
    return 10 - node.data("level"); 
}, 
minNodeSpacing: 1, 
padding: -1 
}; 

매개 변수가 있지만 실제로 작동하지 않는 것으로 보입니다. 라벨 크기를 늘릴 수있는 사람이 있는지 궁금합니다. 이상적으로는 레이블 크기가 여기 예제와 비슷하게 표시되기를 바랍니다 : http://js.cytoscape.org/demos/spread-layout/. 그러나이 레이아웃은 다른 레이아웃을 사용합니다 (그러나 노드에도 많은 수의 노드가 포함되어 있습니다). 고마워요!

답변

0

노드가 너무 많이 떨어져 있습니다. 따라서 그래프가 뷰포트에 장착되면 크게 축소됩니다.

원하는 시각적 결과를 얻을 때까지 레이아웃 매개 변수를 조정하십시오.

매개 변수 고려해야 할

  • spacingFactor
  • minNodeSpacing에게
  • avoidOverlap을
  • nodeDimensionsIncludeLabels

참조 : http://js.cytoscape.org/#layouts/concentric

-

글꼴 크기를 변경하려면 스타일 시트 (예 : font-size) : http://js.cytoscape.org/#style/labels