Graphviz:项目不按字母顺序排列

Graphviz: Items not in alphabetic order

早上好,谁能告诉我为什么图表上的项目显示顺序是 1、3、2 而不是 1、2、3?我想这是一个错误,如何解决它?提前致谢!

  1. 打开 http://viz-js.com/

  2. 粘贴此内容并关注第 3 级(底部)

digraph G { 
"NA";
"I";
"II";
"III";
"1";
"2";
"3";
{rank = same 1; 2 ; 3}
{rank = same I; II ; III}
"NA"->"I" ;
"NA"->"II" ;
"NA"->"III" ;
"I"->"1" ;
"I"->"2" ;
"I"->"3" ;
"II"->"1" ;
"II"->"2" ;
"II"->"3" ;
"III"->"1" ;
"III"->"2" ;
"III"->"3" ;
"NA"->"1" ;
"NA"->"2" ;
"NA"->"3" ;
}

一个常见的问题是,我们希望图表看起来“恰如其分”——无论我们的个人审美是什么。但是点算法被编程为一组不同的目标 - 有时会产生非常混乱的结果。
幸运的是,使用 ordering 属性可以轻松(明确地)解决您的问题。

digraph G { 
"NA";
"I"  [ordering=out];  // explicit ordering of out edges
"II";
"III";
"1";
"2";
"3";
{rank = same 1; 2 ; 3}
{rank = same I; II ; III}
"NA"->"I" ;
"NA"->"II" ;
"NA"->"III" ;
"I"->"1" ;
"I"->"2" ;
"I"->"3" ;
"II"->"1" ;
"II"->"2" ;
"II"->"3" ;
"III"->"1" ;
"III"->"2" ;
"III"->"3" ;
"NA"->"1" ;
"NA"->"2" ;
"NA"->"3" ;
}

有时这些排序类型的问题可能很难“正确”解决,但这次不是。唯一的诀窍是找到“正确的”属性和使用它的方法。