How to wrap text in biograph nodes
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
I've been trying to make my node IDs in a biograph be multiline or wrap to a second line.
I can use the set() command to edit the node property 'ID'. However, every trick I try to get multiline text fails. the control character \n gets replaced with a space instead of causing a new line due to the verifyUniqueID operation used when the biograph is constructed. Thus, char('line 1','line 2') or sprintf('line 1\nline2') turn into 'line 1 line2'.
e.g.
% create biograph
d = biograph([0 1;0 0],{'Node A' 'Node B'};
hd = view(d)
% attempt to write a 2-line node ID
set(hd.Nodes(1),'ID',sprintf('Node A\nLine2')
set(hd.Nodes(2),'ID',sprintf('Node B\nLine2')
% refresh the biograph to reflect the changes
dolayout(hd)
I have additionally tried e.g. char('Node A','Line 2') as well as ['Node A';'Line 2']. My last resort is to modify the matlab function ... \toolbox\bioinfo\bioinfo\@biograph\@node\schema.m to attempt to block the verifyUniqueID
Maybe someone has an alternative approach that forces the text to wrap?
11 Kommentare
Antworten (1)
Gregory
am 23 Mär. 2012
2 Kommentare
Oleg Komarov
am 23 Mär. 2012
I suggest also to request technical support an enhancement to allow multiline nodes.
dan halbersberg
am 28 Jan. 2016
Can you be more specific on how to change the text within a node to include multi-lines? graph=biograph(dag,names);
g=biograph.bggui(graph);
f=figure;
copyobj(g.biograph.hgAxes,f);
f=get(g.biograph.hgAxes,'parent');
what's next? how do I access Nodes(1).ID from here and set it to: sprintf('Node A\nLine 2')?
Siehe auch
Kategorien
Mehr zu Entering Commands finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!