问题标签 [graph-drawing]

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 投票
2 回答
1297 浏览

graph - 绘制流网络的软件

我需要绘制一些流网络,如下所示:
在此处输入图像描述

有谁知道可以做到这一点的程序?

0 投票
1 回答
982 浏览

python - Drawing clustered graphs in Python

I already have a way of clustering my graph, so the process of clustering isn't the issue here. What I want to do is, once we have all the nodes clustered - to draw the clustered graph in Python, something like this:

enter image description here

I looked into networkx, igraph and graph-tool, but they seem to do the clustering, but not the drawing. Any ideas and propositions of what library should I use for drawing the already clustered graph, which will minimize the number of crossing links?

0 投票
2 回答
4535 浏览

c# - 使用 WPF 绘制简单图形

我希望在 WPF 应用程序中进行一些简单的绘图,我想知道这是否是一项简单的任务,或者我是否应该研究一些 3rd 方库。

很简单,我只想在图像控件上绘制一些点和这些点之间的线。这很容易做到吗?

谢谢!

0 投票
1 回答
4815 浏览

java - 如何在点文件 node_id 中使用特殊字符?

我期待编写一个脚本,该脚本将自动从文件中获取输入并声明节点和边,并生成可以在任何可视化软件中可视化的图形。

我尝试了点语言和graphViz。这种语言使用的语法清楚地声明了图形的节点,如下所示:node1;node2;并且不允许任何特殊字符,除了_.

它在所有情况下都能正常工作,但是当我想声明一个名为java.lang.object它的节点时,由于存在 of 而显示语法错误.并且我无法更改它的语法。

任何人都可以通过建议一些其他语言来帮助我,这些语言可以从文本文件中获取输入并可以在任何可视化软件上绘制图表。

0 投票
1 回答
19853 浏览

c# - 如何获取和设置图像的属性项

我试图理解位图或图像的这两种方法。一个存在.SetPropertyItem(),另一个存在.GetPropertyItem()

我对文档说我要设置属性项的方式感到完全困惑。

Microsoft 文档中,它指出我们应该通过图像中已经存在的属性项的 id 选择一个属性项,给该属性项一个新的 ID,设置属性,然后使用检索到的属性设置图像属性项物品。

这太奇怪了,但真正让我明白的是,我们不能只将属性项的 id 设置为任何我们必须将属性项 id 设置为属性项 id 列表中已经存在的 id。

令人困惑的是,我正在使用一个已经通过其他方式设置的属性并覆盖它的属性,然后使用属性 ID 列表中的其他现有 ID 将其添加回图像。

我在这里想念什么?有没有办法简单地创建一个新的 PropertyItem,然后将具有任何给定 ID 的属性项添加到图像或位图中?

这是我正在谈论的一个例子。20752 的 ID 是图像已经具有的属性项,当我设置 PropertyItem 的 ID 时,20753 也是图像具有的 ID。

这将成功设置属性项。

这将成功检索 PropertyItem。

有没有一种方法可以让我用我自己的 ID 创建一个新的 PropertyItem 而不必做那些奇怪的事情?或者我在这里错过了什么?

或者,为图像或位图设置其他类型的属性的更好方法是什么?我正在寻找一种基本的方法来保存信息并在以后检索它。

我在这里做错了什么?

0 投票
0 回答
121 浏览

algorithm - 树图中的布局依赖(类似于 gitk)

我有一堆可能具有依赖关系的节点,例如 A、B、C,连接 A <- B 和 B <-C。我想将它们放在一个列表中(gui 中的列表视图/树视图),并绘制一个漂亮的图表,显示一列中的关系。我在想一些 git 工具给你的东西。

(有关更多示例,请参阅此线程)。

我设法为此绘制了自己的算法,但我不确定我是否得到了所有极端情况。这似乎是一个已解决的问题,所以我想我会在这里询问任何标准算法。我的要求是:

  • 线路可以离开和到达每一行。
  • 行可能会经过一行。
  • 行具有自然顺序。目前,依赖项只在一个方向上(后面的行可能取决于前面的行),但如果可能的话,我想放弃这个要求。(我编造的算法不允许这样做。)
  • 我不需要像上图那样合并线条。如果多条线路到达或离开同一点,它们可能出于美观原因合并。不过,我不想将通过与到达合并,如上图中的第 3 行。(所以会有两个通过,一个终点在那里。)
  • 同样,出于美观的原因,该算法可能会“压缩”树,并弯曲线条以节省空间。但如果它只有直线也足够了。
  • 我想从依赖项列表开始,并得到说明在每个单元格中绘制什么来创建树。

这种算法的任何参考/代码示例?当然,有各种 git 客户端的来源,但它们做的事情与我正在寻找的东西略有不同(我没有合并)。

0 投票
1 回答
700 浏览

jquery - jQuery的交互式树/分层图表插件?

对于我正在处理的项目,我们需要用户能够创建交互式树/层次图。类似于创建思维导图,但具有自上而下的方向。

我已经评估了各种工具,但似乎没有一个符合要求:

  • arbor.js:仅用于绘制图形而不用于就地编辑/创建
  • JavaScript Infovis Toolkit:整洁但适用于 JSON 格式的数据,不适用于就地编辑
  • Raphael.js:同上
  • Mindmup:开源,几乎可以满足我们的需求,但没有 API 文档。必须翻阅大型 JS 文件以找到如何处理简单的事情,例如加载/保存 JSON 等,

是否有任何 jQuery 插件或工具可用于以交互方式创建树形图,或者我们是否仅限于在渲染/可视化库“之上”创建该层?

0 投票
2 回答
255 浏览

algorithm - 一种无需检查所有顶点对即可绘制图形的算法?

图形绘制算法,例如此处描述的算法,两两检查所有顶点,如果两个顶点通过边连接,则施加额外的力。如果我们有一个非常大的图,检查所有顶点对将是昂贵的。是否有任何图形绘制算法仅使用现有边绘制大图,而不是通过验证所有可能的对?

编辑
通过绘图算法,我的意思是一种算法,它为每个顶点分配一个 2D 或 3D 位置,以便将球体或圆形(或任何其他形状)渲染为它们指定位置的顶点,从而导致整个图形的合理视觉表示。

0 投票
2 回答
3256 浏览

vtk - VTK 替代品

如果答案已经在某个地方,我深表歉意,搜索互联网并没有返回我正在寻找的答案。

情况:我有一个小图(一组边和节点) - 现在我想以交互方式显示它,我想以编程方式操纵用于边和节点的显示样式和符号。

因此 kgraphviewer 不会工作 - 我想按照规定以编程方式进行。

我注意到VTK,带有很多内置的图形绘制算法。不过好像真的很大。

问题:VTK 有哪些替代品?Graphviz 可能是其中之一,但我无法确认 graphviz 随附所有图形绘制算法作为 VTK - 任何其他可能更小的选项,以及所有内置图形?

旁注:某些系统使用静态绘图小部件,即一旦显示绘图,在系统附带的小部件中,您无法使用鼠标与绘图交互。IDL 的 GNU 实现,GDL,就有这个问题。我想避免这种情况。

0 投票
2 回答
4264 浏览

javascript - 点击时捕获谷歌地图折线(每个开始/结束)

描述

我目前正在为我们的客户使用 Google Maps V3,他们要求我们实现一个绘图工具,允许他们创建连接的线流并计算距离。但是,Google Maps V3 绘图管理器库似乎非常有限,它允许我们捕获折线的点击事件。

我们的准则

目标

如您所见,我们希望在用户创建折线时捕获纬度/经度,并在创建每条线时显示距离,而不是在完成整个折线后。

另外,我知道我们可以通过创建自定义处理程序并使用地图的点击方法和在纬度/经度之间手动绘制线条来做一些魔术来模仿这一点,但 Google Maps API 的绘图管理器没有点击方法似乎很奇怪.

澄清

最终目标是具有功能,因此在绘制折线时,我们可以动态显示折线的总长度。IE 我从画一条线开始,出现一个显示“总线为 X”的部分,我单击第二个点创建第二行,文本更新为“x”+“y”,单击第三个并更新到“x”+“y”+“z”等。这就是为什么我们希望有一个事件来处理“lineDrawn”或“polylineClick”来存储这些纬度/经度,以便我们可以计算动态创建的线的长度无需用户停止画线以查看总长度。

编辑:更新了我们的目标中的 addListener以使用绘图管理器,而不是地图。

编辑:添加澄清部分。