How to wrap text in biograph nodes
2 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
回答 (1 件)
Gregory
2012 年 3 月 23 日
2 件のコメント
Oleg Komarov
2012 年 3 月 23 日
I suggest also to request technical support an enhancement to allow multiline nodes.
dan halbersberg
2016 年 1 月 28 日
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')?
参考
カテゴリ
Help Center および File Exchange で Entering Commands についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!