问题标签 [graphviz]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1753 浏览

graphviz - 用于图形操作程序的 Graphviz 或 Dynagraph?

我正在研究编写一个向用户显示图表的程序。图表会随着时间而改变(用户应该能够右键单击图表项目并询问更多详细信息,这将弹出图表的新位),并且用户可能能够拖动图表的某些部分. 理想情况下,我还希望能够自己指定图形某些部分的相对布局,同时将整体布局留给库,但这不是必需的。

我正在尝试决定要使用的图形布局库。据我所知,两个领先的候选人是 Graphviz 和 Dynagraph。Dynagraph 网站建议 Graphviz 用于绘制静态图,并且 Dynagraph 是从 Graphviz 派生的,包含将要更新的图的算法。它有一个名为 Dynasty 的示例程序,它完全符合我的要求。但是,Graphviz 站点包含一个名为 Lefty 的示例程序,它似乎完全符合我的要求。从谷歌(和 SO)的结果来看,Graphviz 似乎也被广泛使用。

最后,我想用 Python 或 Scheme 之类的语言编写 GUI 部分,这让我对使用 C++ 有点犹豫,因为我知道将它与解释器接口更难。

所以我的问题是,哪个库更适合我正在尝试做的事情?他们都有优点和缺点吗?他们中的一个是否真的停止了开发,只是离开它的网站来迷惑我?

(我已经看到Simple Dynamic Graph Display for C++开源库来设计有向图,但由于 Lefty 和语言问题,我无法判断他们对 Graphviz 或 Dynagraph 的选择是否正确。)

0 投票
2 回答
836 浏览

graphviz - 如何在 XWiki 2.0 语法中使用 Graphviz 宏?

XWiki FAQ 提供了 XWiki 1.0 语法的示例:

我的 XWiki 已正确设置为显示此内容。但我无法将其翻译成 XWiki 2.0 语法。我试过这个

和其他变体,但我得到的最好的结果是“graphviz”不是一个有效的宏。

一旦我将文档格式切换回旧语法,它就可以工作,所以我认为这不是某种错误配置问题。

什么是正确的语法?

0 投票
1 回答
607 浏览

graph - 为什么 graphviz 绘制两个箭头,并使用奇怪的顺序?

为什么graphviz从uncap_spike绘制两个箭头到peel,为什么它在hang的右侧绘制peel?

我想要 uncap_spike -> 剥离 -> 挂起 -> 穗,按此顺序,每个之间有一个边缘。

替代文字 http://grab.by/33kA

0 投票
2 回答
251 浏览

graph - 为什么graphviz将C绘制在B的右侧?

为什么graphviz将C绘制在B的右侧?我希望它看起来像

反而。

替代文字 http://grab.by/33m4

0 投票
1 回答
3993 浏览

graphviz - 获取 graphviz 以在边缘上方绘制节点

有没有办法强制graphviz始终在边缘上方绘制节点,即使边缘被绘制在节点上方(或最好在节点下方)?

到目前为止,我已经尝试对它们和不同的图层选项进行排序,但没有找到一种可行的方法。

0 投票
1 回答
15420 浏览

graph - 使用 graphviz twopi 控制布局

我正在尝试使用 twopi 绘制显示搜索前缀的图表。我有一个简单的输入文件,并得到这个输出:

替代文字 http://www.freeimagehosting.net/uploads/th.ac6cd51528.png (全图)

这是输入文件:

此输出是通过以下方式生成的:

我在这里发帖是因为打印输出非常可怕。所有挂在“gaz”上的节点都是重叠的;我试过指定nodesep,它只是被忽略了。我想看到从根到单个字母的线更远,但同样,我无法控制。

这似乎是twopi中的一个错误。文档说它应该清楚地遵循这些指令,但似乎没有。

我的问题:

  1. 有什么方法可以让 twopi 正常工作吗?
  2. 如果做不到这一点,是否有更好的布局引擎可以使用?

谢谢。

0 投票
5 回答
54256 浏览

graphviz - 如何控制graphviz中的节点放置(即避免边缘交叉)

我正在使用 graphviz (dot) 来生成您可以在下面看到的图表。左下角的节点(红色椭圆)会引起烦恼,因为它的边缘穿过相邻节点的多个边缘。有没有办法将节点放置到某个区域?

边与其他几条边相交的图

0 投票
3 回答
20303 浏览

graphviz - 点中的子图聚类排名

我正在尝试在 media wiki 上使用 graphviz 作为软件的文档工具。

首先,我记录了一些运行良好的类关系。一切都按预期垂直排列。

但是,我们的一些模块是 dll,我想将它们分成一个盒子。当我将节点添加到集群时,它们会变得边缘化,但集群似乎有 LR 排名规则。或者被添加到集群会破坏节点的 TB 排名,因为集群现在出现在图表的一侧。

这张图代表了我正在尝试做的事情:目前,cluster1 和 cluster2 出现在 cluster0 的右侧

我希望/需要它们出现在下面。

0 投票
1 回答
8784 浏览

graph - 如何在 Dot 中绘制更好看的图形(A4 大小)?

我有这个项目,几个小时后就要到期了,我还有一份报告要写……这个项目与 Dot 无关,但我们被要求用 Dot 绘制图表,我做到了。

它看起来像这样:http:
//img683.imageshack.us/img683/9735/dotj.jpg

较长的箭头代表较小的权重,较短的箭头代表较大的权重。像这样提交我的项目没有任何问题,它做了应该做的事情,而这个 Dot 只是一个额外的东西。

但我想让它变得漂亮,我只是现在没有时间了解 Dot。基本上,我想要的只是变得漂亮。也许,页面的高度更大,比如 A4 纸大小。并且让图表显示在底部而不是侧面。

我应该在我的 .dot 文件中添加什么以使其看起来更好?

0 投票
6 回答
10654 浏览

c++ - 如何在 C++ 中可视化二叉树

当我实现二叉树时,人们编写的第一个实用程序之一是一个可视化函数,给定一棵树将其打印到屏幕上。

每次使用 cout 函数像堆栈一样打印它对我来说是个问题,我不能代表我的工作的价值。

用 ASCII 正确打印树很难理解。同时,它不能清晰地呈现您的树和您的操作。

通过一些研究,我发现了一个名为 Graphviz 的工具——图形可视化软件——它使用一种语言(称为 DOT)和一组工具来自动生成图形的可视化。Graphviz是画图的工具,不是树,所以不能用;并且为此实现 C++ 代码非常困难。

我正在寻找一些代码、算法或方法来显示我的树。我正在考虑使用一些库,如 GTK、QT、STL 或 WPF,因为我正在使用 Visual Studio C++。

可以使用它们吗?哪个最适合?