最简单的格式用于转储yEd的图形

时间:2011-06-02 23:21:00

标签: graph format visualization graphml

我目前正在尝试在java中为yEd转储图形。我一直在尝试使用graphml作为格式,但我发现它非常麻烦。特别是,节点的大小不会根据标签的大小调整大小,因此大多数时候标签会比实际文件大。

在没有实际进入并指定每个节点的宽度和高度的情况下,有什么办法可以解决这个问题吗?

由于

1 个答案:

答案 0 :(得分:2)

有一种方法,虽然这种方式使用非官方API,但可能不适用于任何版本,但目前的版本(写作时为3.9.2)。

在GraphML中,在图表级别添加以下键:

  <g:key id="ppkey" for="graph" yfiles.type="postprocessors"/>
  <g:graph id="G" edgedefault="directed">
    <g:data key="ppkey">
      <y:Postprocessors>
        <y:Processor class="A.A.A.A.A">
          <y:Option name="IGNORE_WIDTHS" value="false"/>
          <y:Option name="IGNORE_HEIGHTS" value="true"/>
          <y:Option name="ADAPT_TO_MAXIMUM_NODE" value="false"/>
        </y:Processor>
      </y:Postprocessors>
    </g:data>
  </g:graph>

正如您所看到的,“A.A.A.A.A”显然是一个混淆的类名,它可能会在构建之间发生变化,并且会破坏您的脚本。

造成这种不便的原因实际上非常简单:yEd不应该以自动方式使用(许可证甚至明确禁止纯自动用例),因此针对交互式使用进行了优化。因此,实际上打算点击按钮。为什么?因为yEd是一个基于强大的商业图书馆的免费产品,它只是免费的,因为高级用户购买图书馆的许可证,从而赞助yEd的开发和支持。如果您确实需要以编程方式利用该功能,那么您应该直接了解库的许可。

也就是说,您也可以尝试Excel导入 - 它会自动为您执行此步骤,但您必须创建一个excel文件才能开始。