Дополнительный урок 1: надписи на рёбрах

Надписи на рёбрах создаются (по аналогии с надписями на узлах) с помощью атрибута «label»:

edge: { source: "A" 
        target: "B"
        label: "пример"
}

Хозяйке на заметку

  • Поддержка кириллицы (UTF-8) — начиная с версии aiSee 3. aiSee 2.x поддерживает только латиницу (ISO 8859-1).

  • По умолчанию, aiSee 3 использует векторный шрифт, в котором нет букв кириллицы. Как выбрать другой шрифт, будет рассказано в отдельном уроке. Во всех примерах здесь и впоследствии использован шрифт Гельветика кеглем в 14 пикселей.

С целью ускорить визуализацию больших графов, aiSee по умолчанию не отображает надписи на рёбрах, даже если таковые указаны. Включить их (и снова выключить) можно в меню «Layout», но можно и заставить aiSee сразу же отображать надписи на рёбрах с помощью атрибута графа «display_edge_labels»:

display_edge_labels: yes

Этот атрибут, как и прочие атрибуты графа, можно указывать в любом месте графа, но рекомендуется указывать в самом его начале.

Пример:

graph: {

node.fontname: "helvR14"
display_edge_labels: yes

node: { title: "М" label: "Маша"     }
node: { title: "1" label: "клубнику" }
node: { title: "2" label: "дыню"     }
node: { title: "3" label: "спаржу"   }
node: { title: "4" label: "кольраби" }

edge: { source: "М" target: "1" label: "любит"     }
edge: { source: "М" target: "2" label: "не любит"  }
edge: { source: "М" target: "3" label: "ненавидит" }
edge: { source: "М" target: "4" label: "терпеть не может" }

}

Как и надписи на узлах, надписи на рёбрах могут состоять из нескольких строк. Допускаются знаки перевода строки и табуляции («\n» и «\t»). Двойные кавычки (знак дюйма) могут указываться при помощи «\"».

edge: { source: "М" target: "4" 
        label: "терпеть\nне\"могёт\"" }

Цвет надписи можно изменить с помощью атрибута «textcolor»:

edge: { source: "М" target: "1" 
        label: "любит" 
        textcolor: red 
}

Поддерживаемые цвета подробно описаны в уроке 4. По умолчанию надпись имеет тот же цвет, что и само ребро. Изменить цвет надписей сразу на нескольких/всех рёбрах можно с помощью глобальных атрибутов.

По умолчанию, с целью оставить достаточно места между надписями на рёбрах и узлами, aiSee может преломлять рёбра, менять узлы местами и вообще полностью изменять всю раскладку графа. В результате, при включении/выключении надписей на рёбрах внешний вид раскладки может существенно изменяться. Предотвратить это вы можете с помощью атрибута графа «dirty_edge_labels»:

dirty_edge_labels: yes

Рассмотрим разницу на примере двух графов:

Надписи выключены Надписи включены Надписи включены,
dirty_edge_labels: yes
display_edge_labels: no display_edge_labels: yes, dirty_edge_labels: no display_edge_labels: yes, dirty_edge_labels: yes
display_edge_labels: no display_edge_labels: yes, dirty_edge_labels: no display_edge_labels: yes, dirty_edge_labels: yes

Граф визуализируется, как если бы надписи на рёбрах были самостоятельными узлами.

Достоинства:

  • Надписи на рёбрах не наезжают друг на друга, на соседние рёбра и на узлы графа.

Недостатки:

  • Рёбра могут преломляться на надписях.
  • При выключении/включении надписей на рёбрах раскладка графа может полностью изменяться.
  • На визуализацию требуется больше времени.

Граф визуализируется, как если бы на рёбрах не было надписей, а затем уже надписи накладываются на середину рёбер.

Достоинства:

  • Ускоренная визуализация графа.
  • Рёбра не преломляются на надписях.
  • При выключении/включении надписей раскладка графа не меняется. Надписи просто ложатся поверх рёбер.

Недостатки:

  • Надписи на рёбрах могут наезжать друг на друга и на другие рёбра. Длинные надписи могут не помещаться на ребре, если они рисуются вдоль него.
Наверх