我正在寻找(好)电路/方框图绘制的算法或可视化工具.
我也对这个问题的一般表述感兴趣.
通过"电路绘图",我的意思是探索具有I/O端口及其连接(电线)的方框图(矩形)的布局和布线的能力.这些块图可以是分层的,即一些块可能具有一些嵌套的内部子结构等.
本主题与经典的图形绘制密切相关,需要考虑端口位置的补充约束,以及可能的块形状(各种尺寸的矩形).Graphviz工具无法解决问题(至少我以前的实验并不令人满意).
力导向算法引起了我的注意,但我刚刚在经典有向图上发现了论文.
任何提示?
[2013年11月21日更新]似乎最好的参考日期是Spönemann
哪些(/sf/ask/34502541/)库可用于评估节点坐标?我的意思是我想绘制和操作图形,通过单击它来添加一些节点或删除,然后使用一些轻量级库来评估坐标.
我需要的是能够在点文件和特殊布局(http://en.wikipedia.org/wiki/DOT_language)上给出符合图节点和2D点的算法.
可预见的语言:C++,C#,Java
我试图弄清楚如何在 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)
有人可以告诉我如何才能达到这种效果吗?
谢谢!
在图论中,平面图是可以嵌入平面中的图,即,它可以在平面上绘制,使得其边缘仅在它们的端点处相交.
它们是用于平面图测试的许多算法(即确定给定图是否是平面图).最好的是在O(n)中,其中n是顶点的数量.
存在哪些支持以下功能的开源程序:
我正在研究编写一个向用户显示图形的程序.图形将随着时间的推移而变化(用户应该能够右键单击图形项目并询问更多细节,这将弹出图形的新位),并且用户可能能够拖动图形的一部分.理想情况下,我希望能够自己指定图表某些部分的相对布局,同时将整体布局保留到库中,但这不是必需的.
我正在尝试决定使用的图形布局库.据我所知,两位主要候选人是Graphviz和Dynagraph.Dynagraph网站建议Graphviz用于绘制静态图形,Dynagraph是从Graphviz分叉的,包含将要更新的图形算法.它有一个名为Dynasty的示例程序,完全符合我的要求.但是,Graphviz站点包含一个名为Lefty的示例程序,它似乎完全符合我的要求.根据谷歌(和SO)的结果判断,Graphviz似乎也得到了更广泛的应用.
最后,我想用Python或Scheme等语言对GUI部分进行编码,这让我对使用C++有点犹豫,因为我知道将它与解释器连接起来比较困难.
所以我的问题是,哪个库对我正在尝试做的更好?他们都有强弱点吗?其中一个实际上已经停止了开发,只是离开它的网站让我迷惑吗?
(我已经看到了用于C++和开源库的简单动态图形显示来设计有向图,但由于Lefty以及语言问题,我无法判断它们对Graphviz或Dynagraph的选择是否正确.)
我正在创建一个用于将Python项目显示为UML图的工具(+使用GUI显示一些代码错误检测)
我使用Pyreverse扫描一些项目,我拥有绘制UML图所需的所有数据.问题是在画布上定位类框
首先,我决定使用已经实现的基于力的算法来决定类的位置,它的效果非常好,这里的结果是 https://github.com/jvorcak/gpylint/blob/master/screenshots/gpylint.png ,这里是该代码(Python,但它即使非Python程序员很容易理解)
有一个proble,这是伟大的显示图形,但如果我想显示UML我想有一些改进,例如,如果2类扩展了一个超类,我希望他们是在图中的同一水平比如点程序生成的图表
你能告诉我一个算法怎么做吗?或者至少给我一些想法?
我已经有了一种聚类图形的方法,因此聚类过程不是问题.我想要做的是,一旦我们将所有节点聚集在一起 - 用Python绘制聚类图,如下所示:
我查看了networkx,igraph和graph-tool,但它们似乎是在进行聚类,而不是绘图.我应该使用什么库来绘制已经聚类的图形的任何想法和命题,这将最大限度地减少交叉链接的数量?
python graph cluster-analysis graph-drawing unsupervised-learning
在我的Winforms应用程序中,我有一个小图表.没有什么比我用线条连接的一堆x/y点更好看.
绘制曲线而不是线来连接这些点会很不错.但由于数学从来都不是我的强项,我不知道该怎么做.
任何样品或建议都会有所帮助.
我想以与下面相似的布局呈现图形:
我试过这个:
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)
产生了以下结果:(不是很好......
谁能告诉我最接近的解决方案?(可能不可能完全相同)
使用以下点代码
digraph DG {
G -> V;
G -> E;
G -> P;
G -> C;
}
Run Code Online (Sandbox Code Playgroud)
我生成以下图表
我怎么能在中心移动节点G?那是我希望得到这样的东西:
ps我设置边缘等级的实验没有成功.