问题标签 [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.
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 的选择是否正确。)
graphviz - 如何在 XWiki 2.0 语法中使用 Graphviz 宏?
XWiki FAQ 提供了 XWiki 1.0 语法的示例:
我的 XWiki 已正确设置为显示此内容。但我无法将其翻译成 XWiki 2.0 语法。我试过这个
和其他变体,但我得到的最好的结果是“graphviz”不是一个有效的宏。
一旦我将文档格式切换回旧语法,它就可以工作,所以我认为这不是某种错误配置问题。
什么是正确的语法?
graph - 为什么 graphviz 绘制两个箭头,并使用奇怪的顺序?
为什么graphviz从uncap_spike绘制两个箭头到peel,为什么它在hang的右侧绘制peel?
我想要 uncap_spike -> 剥离 -> 挂起 -> 穗,按此顺序,每个之间有一个边缘。
graphviz - 获取 graphviz 以在边缘上方绘制节点
有没有办法强制graphviz始终在边缘上方绘制节点,即使边缘被绘制在节点上方(或最好在节点下方)?
到目前为止,我已经尝试对它们和不同的图层选项进行排序,但没有找到一种可行的方法。
graph - 使用 graphviz twopi 控制布局
我正在尝试使用 twopi 绘制显示搜索前缀的图表。我有一个简单的输入文件,并得到这个输出:
替代文字 http://www.freeimagehosting.net/uploads/th.ac6cd51528.png (全图)
这是输入文件:
此输出是通过以下方式生成的:
我在这里发帖是因为打印输出非常可怕。所有挂在“gaz”上的节点都是重叠的;我试过指定nodesep
,它只是被忽略了。我想看到从根到单个字母的线更远,但同样,我无法控制。
这似乎是twopi中的一个错误。文档说它应该清楚地遵循这些指令,但似乎没有。
我的问题:
- 有什么方法可以让 twopi 正常工作吗?
- 如果做不到这一点,是否有更好的布局引擎可以使用?
谢谢。
graphviz - 如何控制graphviz中的节点放置(即避免边缘交叉)
我正在使用 graphviz (dot) 来生成您可以在下面看到的图表。左下角的节点(红色椭圆)会引起烦恼,因为它的边缘穿过相邻节点的多个边缘。有没有办法将节点放置到某个区域?
graphviz - 点中的子图聚类排名
我正在尝试在 media wiki 上使用 graphviz 作为软件的文档工具。
首先,我记录了一些运行良好的类关系。一切都按预期垂直排列。
但是,我们的一些模块是 dll,我想将它们分成一个盒子。当我将节点添加到集群时,它们会变得边缘化,但集群似乎有 LR 排名规则。或者被添加到集群会破坏节点的 TB 排名,因为集群现在出现在图表的一侧。
这张图代表了我正在尝试做的事情:目前,cluster1 和 cluster2 出现在 cluster0 的右侧。
我希望/需要它们出现在下面。
graph - 如何在 Dot 中绘制更好看的图形(A4 大小)?
我有这个项目,几个小时后就要到期了,我还有一份报告要写……这个项目与 Dot 无关,但我们被要求用 Dot 绘制图表,我做到了。
它看起来像这样:http:
//img683.imageshack.us/img683/9735/dotj.jpg
较长的箭头代表较小的权重,较短的箭头代表较大的权重。像这样提交我的项目没有任何问题,它做了应该做的事情,而这个 Dot 只是一个额外的东西。
但我想让它变得漂亮,我只是现在没有时间了解 Dot。基本上,我想要的只是变得漂亮。也许,页面的高度更大,比如 A4 纸大小。并且让图表显示在底部而不是侧面。
我应该在我的 .dot 文件中添加什么以使其看起来更好?
c++ - 如何在 C++ 中可视化二叉树
当我实现二叉树时,人们编写的第一个实用程序之一是一个可视化函数,给定一棵树将其打印到屏幕上。
每次使用 cout 函数像堆栈一样打印它对我来说是个问题,我不能代表我的工作的价值。
用 ASCII 正确打印树很难理解。同时,它不能清晰地呈现您的树和您的操作。
通过一些研究,我发现了一个名为 Graphviz 的工具——图形可视化软件——它使用一种语言(称为 DOT)和一组工具来自动生成图形的可视化。Graphviz是画图的工具,不是树,所以不能用;并且为此实现 C++ 代码非常困难。
我正在寻找一些代码、算法或方法来显示我的树。我正在考虑使用一些库,如 GTK、QT、STL 或 WPF,因为我正在使用 Visual Studio C++。
可以使用它们吗?哪个最适合?