标签: graph-drawing

电路/方框图

我正在寻找(好)电路/方框图绘制的算法或可视化工具.

我也对这个问题的一般表述感兴趣.

通过"电路绘图",我的意思是探索具有I/O端口及其连接(电线)的方框图(矩形)的布局和布线的能力.这些块图可以是分层的,即一些块可能具有一些嵌套的内部子结构等.

本主题与经典的图形绘制密切相关,需要考虑端口位置的补充约束,以及可能的块形状(各种尺寸的矩形).Graphviz工具无法解决问题(至少我以前的实验并不令人满意).

力导向算法引起了我的注意,但我刚刚在经典有向图上发现了论文.

任何提示?

[2013年11月21日更新]似乎最好的参考日期是Spönemann

algorithm visualization graph-drawing

11
推荐指数
1
解决办法
1万
查看次数

图节点协调评估

哪些(/sf/ask/34502541/)库可用于评估节点坐标?我的意思是我想绘制和操作图形,通过单击它来添加一些节点或删除,然后使用一些轻量级库来评估坐标.

我需要的是能够在点文件和特殊布局(http://en.wikipedia.org/wiki/DOT_language)上给出符合图节点和2D点的算法.

可预见的语言:C++,C#,Java

c# c++ graph graph-drawing

9
推荐指数
1
解决办法
2万
查看次数

Tikz:从节点绘制边缘到另一条边缘的标签

我试图弄清楚如何在 tikz 中的节点和其他两个节点之间的边缘标签之间绘制边缘。这是我正在尝试做的事情的一个例子:

在此输入图像描述

这是我的代码:

\documentclass[11pt]{article}
\usepackage[margin=1in, top=1.5in]{geometry}
\usepackage{amsmath,amssymb,bbm}
\usepackage{graphicx}
\usepackage{tikz}
\usetikzlibrary{arrows, positioning}

\setlength{\parindent}{0.25in}
\newcommand{\assign}{:=}
\usepackage[hang,small,bf]{caption}


\begin{document}

\begin{figure}[!h]
  \centering
  \begin{tikzpicture}[shorten >=1pt,node distance=3cm,on grid,auto]
    \tikzstyle{state}=[shape=circle,thick,draw,minimum size=1.5cm]

    \node[state] (A1) {$A_1$};
    \node[state,above of=A1] (B1) {$B_1$};
    \node[state,above of=B1] (C1) {$C_1$};

    \node[state,right of=A1] (A2) {$A_2$};
    \node[state,above of=A2] (B2) {$B_2$};
    \node[state,above of=B2] (C2) {$C_2$};



    \path[->,draw,thick]
    (A1) edge node {$l_A$} (B2)
    (B1) edge node {$l_B$} (B2)

    ;

  \end{tikzpicture}
  \caption{Model}
  \label{fig:f1}
\end{figure}


\end{document}
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我如何才能达到这种效果吗?

谢谢!

latex graph-drawing tikz

9
推荐指数
1
解决办法
4万
查看次数

支持Planar图形测试的开源图形绘图程序?

在图论中,平面图是可以嵌入平面中的图,即,它可以在平面上绘制,使得其边缘仅在它们的端点处相交.

它们是用于平面图测试的许多算法(即确定给定图是否是平面图).最好的是在O(n)中,其中n是顶点的数量.

存在哪些支持以下功能的开源程序:

  • 可以绘制平面图
  • 支持O(n)平面图测试.
  • 支持变量节点大小.
  • 支持固定绘图边界区域
  • 是开源的

linux graph graph-drawing graph-layout planar-graph

6
推荐指数
2
解决办法
5646
查看次数

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

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

我正在尝试决定使用的图形布局库.据我所知,两位主要候选人是Graphviz和Dynagraph.Dynagraph网站建议Graphviz用于绘制静态图形,Dynagraph是从Graphviz分叉的,包含将要更新的图形算法.它有一个名为Dynasty的示例程序,完全符合我的要求.但是,Graphviz站点包含一个名为Lefty的示例程序,它似乎完全符合我的要求.根据谷歌(和SO)的结果判断,Graphviz似乎也得到了更广泛的应用.

最后,我想用Python或Scheme等语言对GUI部分进行编码,这让我对使用C++有点犹豫,因为我知道将它与解释器连接起来比较困难.

所以我的问题是,哪个库对我正在尝试做的更好?他们都有强弱点吗?其中一个实际上已经停止了开发,只是离开它的网站让我迷惑吗?

(我已经看到了用于C++开源库的简单动态图形显示来设计有向图,但由于Lefty以及语言问题,我无法判断它们对Graphviz或Dynagraph的选择是否正确.)

graphviz graph-drawing

6
推荐指数
1
解决办法
1558
查看次数

在UML图中定位类

我正在创建一个用于将Python项目显示为UML图的工具(+使用GUI显示一些代码错误检测)

我使用Pyreverse扫描一些项目,我拥有绘制UML图所需的所有数据.问题是在画布上定位类框

首先,我决定使用已经实现的基于力的算法来决定类的位置,它的效果非常好,这里的结果是 https://github.com/jvorcak/gpylint/blob/master/screenshots/gpylint.png ,这里是该代码(Python,但它即使非Python程序员很容易理解)

有一个proble,这是伟大的显示图形,但如果我想显示UML我想有一些改进,例如,如果2类扩展了一个超类,我希望他们是在图中的同一水平比如点程序生成的图表

你能告诉我一个算法怎么做吗?或者至少给我一些想法?

python drawing uml graph-drawing

6
推荐指数
1
解决办法
2029
查看次数

在Python中绘制聚类图

我已经有了一种聚类图形的方法,因此聚类过程不是问题.我想要做的是,一旦我们将所有节点聚集在一起 - 用Python绘制聚类图,如下所示:

在此输入图像描述

我查看了networkx,igraph和graph-tool,但它们似乎是在进行聚类,而不是绘图.我应该使用什么库来绘制已经聚类的图形的任何想法和命题,这将最大限度地减少交叉链接的数量?

python graph cluster-analysis graph-drawing unsupervised-learning

6
推荐指数
1
解决办法
811
查看次数

Winforms/GDI +绘制图表的曲线

在我的Winforms应用程序中,我有一个小图表.没有什么比我用线条连接的一堆x/y点更好看.

绘制曲线而不是线来连接这些点会很不错.但由于数学从来都不是我的强项,我不知道该怎么做.

任何样品或建议都会有所帮助.

charts graph-drawing graph-layout

5
推荐指数
1
解决办法
1388
查看次数

Graphviz:如何渲染关于某些节点边连接点的图形?

我想以与下面相似的布局呈现图形:

通缉

我试过这个:

digraph EDP
{
  graph [colorscheme=paired12];
  node [label="\N", shape=box, style="rounded,filled", colorscheme=paired12, color=8, fillcolor=7, width="1.2", fontname="Arial narrow", fontsize=12];
  edge [colorscheme=paired12, color=8, fontsize=11, fontname="Arial narrow"];

  src [label="Source"];
  dst [label="Destination"];
  filter [label="Filter"];

  src -> dst [label="Encoding process"];
  src -> filter [label="a"];
  filter -> dst [label="b"];
  src -> filter [dir=back, label=c];
  filter -> dst [dir=back, label=d];
  src -> dst [dir=back, label="Decoding process"];

}
Run Code Online (Sandbox Code Playgroud)

产生了以下结果:(不是很好......

我的

谁能告诉我最接近的解决方案?(可能不可能完全相同)

layout graphviz graph-drawing

5
推荐指数
1
解决办法
2892
查看次数

如何将节点放在点生成图的中心

使用以下点代码

digraph DG {
    G -> V;
    G -> E;
    G -> P;
    G -> C;
}
Run Code Online (Sandbox Code Playgroud)

我生成以下图表

点生成图

我怎么能在中心移动节点G?那是我希望得到这样的东西: 希望结果

ps我设置边缘等级的实验没有成功.

graph dot graphviz graph-drawing

5
推荐指数
1
解决办法
2642
查看次数