问题标签 [graphstream]

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 回答
523 浏览

java - 图流中的多图异常

如果有多个边,我正在努力在两个节点上显示两条边。我正在关注这个例子。但我面临一个例外:

线程“main”中的异常 java.lang.NoClassDefFoundError: scala/collection/convert/WrapAsScala at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:264) at org.graphstream .ui.view.Viewer.newGraphRenderer(Viewer.java:349) at org.graphstream.graph.implementations.AbstractGraph.display(AbstractGraph.java:753) at org.graphstream.graph.implementations.AbstractGraph.display(AbstractGraph.java :747) 在 com.h2Database.app.ahd.main(ahd.java:18) 引起:java.lang.ClassNotFoundException: scala.collection.convert.WrapAsScala at java.net.URLClassLoader.findClass(URLClassLoader.java:381 ) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:424) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:357) .. .还有 6 个

我的代码是:

任何想法,为什么我要面对这个?似乎在给定的示例中此问题已解决。

0 投票
1 回答
77 浏览

java - 查找两个节点之间的隐藏节点 - 图 - java

我的英语不是很好,但我会尽力在这里解释我的问题。我正在开发一个必须在其中创建图形的应用程序。现在我正在使用GraphStream.

我的图表的要求非常复杂,即:

我有一个名为CDR(Call Data Record)的表,其中有 2 列ANUMBER 和 BNUMBER。表的结构非常清晰,显示了Anumber叫Bnumber,还有一列DATETIME,显示调用的日期和时间。但我这里只需要两列。

假设我们这里有 4 个数字:123, 456 ,789,000,表结构是这样的

我的表在这里清楚地显示 123 没有调用 000 但 123 调用了 456 和 789 这两个数字称为 000 所以我必须显示 123 和 000 之间的有向图,它可能显示123->456->000如下132->789->000

所以问题是我不知道如何在 123 和 000 之间找到这条路径。可能有超过 2 个数字,比如 5 个或 6 个数字,我必须在所有给定的 5 个或 6 个数字之间找到隐藏的数字以上场景456和789是132到000之间的隐藏数字。

还有一件事,我的表包含超过 2000 万行,将来显然行数会随着用户相互调用而增长得非常快。

到目前为止我做了什么:

我在这个问题上做了一些研发,但找不到任何好的库或任何解决方案。到目前为止,我认为Dijkstra's Algorithm最适合我的场景,因为幸运的是这里GraphStream提供了这个算法。

我想从你们那里得到什么,给我一个想法,这个算法是否会给我所需的结果,或者我必须找到最适合我的问题的任何其他算法或图形库。我不擅长 ALGO,这就是为什么我在这里寻求任何帮助或指导,如果你们可以给我的话。谢谢

0 投票
1 回答
1355 浏览

java - GraphStream 中更具可读性的图形 - JAVA

我正在使用 GraphStream Library处理应用程序。到目前为止,我已经实现了Dijkstra 的 Shortest Path Algorithm我的图表工作正常,但图表的可读性不是我所期望的。 这是图表的屏幕截图: 在此处输入图像描述

如您所见,由于很多边缘交叉,该图不可读。有什么方法可以让我的图表更具可读性。我正在研究Graph Stream Generators 但我认为它们在我的情况下不是最好的。所以我正在寻找我的问题的准确解决方案。在上图中,图形的可读性为 70%,但可以有更多的节点和更多的边,在这种情况下,图形是完全不可读的。这是我到目前为止的代码,让你们有一个想法,我在做什么。

0 投票
1 回答
718 浏览

java - 如何使用 Graphstream 将 Graph 存储在文本文件中

我知道如何使用矩阵和链表处理图形。我是Graphstream的新手。我想知道 java 中的Graphstream中是否有任何内置函数可以在文本文件中存储/读取Graph类型的图形,以及将此类图形存储在文件中的格式是什么?

0 投票
1 回答
570 浏览

java - 没有可怕的字符串/绝对文件路径的 GraphStream 样式?

在 GraphStream 文档中,声明我们可以通过以下方式设置图形样式:

此属性必须存储在图形上,并将样式表本身作为字符串或文件的 URL 作为值,本地、远程或打包在 jar 中。

例如,您可以使用以字符串形式给出的样式表更改图形的背景颜色:

graph.addAttribute("ui.stylesheet", "graph { fill-color: red; }");

但你也可以指定一个 URL:

graph.addAttribute("ui.stylehseet", "url(' http://www.deep.in/the/site/mystylesheet ')");

或者:

graph.addAttribute("ui.stylesheet", "url(file:///somewhere/over/the/rainbow/stylesheet')");

但是,我对此进行了实验,得出的结论是 GraphStream 仅支持该属性的绝对文件路径。这是一个问题,因为我最终会将应用程序导出为 JAR 文件,尽管我发现您可以通过执行以下操作来规避该问题:

这种方法存在不确定性(即它可能不适用于某些机器,例如 Linux 机器(?))。

在这种情况下,我目前的技巧是将“样式表”存储为一个长字符串,如下所示:

坦率地说,这非常难看。

有没有人对如何改善这种情况有任何想法?提前致谢!

0 投票
1 回答
698 浏览

java - Graphstream:设置节点之间的最小距离

我正在使用 graphstream 做一些简单的图形可视化。我发现大多数文档都很有用且易于阅读,但我无法找到一种方法来确保节点不会靠得太近。

我图中的节点有数字作为标签,我想确保节点不会重叠和相互遮挡。有没有简单的方法来解决这个问题?

0 投票
1 回答
293 浏览

java - graphstream:FileSinkImages to png 不适用于平行边

我正在尝试使用 FileSinkImages 绘制图像:

显示的图像是正确的:平行边缘是曲线,在绘制的图像中是重叠线。

0 投票
1 回答
457 浏览

android - 如何检测用户与图流的交互?

我正在调查在 Android 上使用 GraphStream

我已经成功地构建和显示了我的图表,

但是,我看不到如何在图表中的节点上监听用户交互。

当用户单击任何节点并显示特定节点信息时,我需要显示一个对话框。

我尝试在 上设置监听器org.graphstream.ui.android_viewer.AndroidViewer,但是我从未收到任何回调

我可以在屏幕上拖动显示的节点,这样我就知道有默认的侦听器,但是如何添加自己的侦听器?

0 投票
1 回答
251 浏览

java - 如何使用继承与 GraphStream 将数据存储在图形中

在标题为 GraphStream 的教程中

它指出:-

我正在尝试使用继承(通过扩展org.graphstream.graph.implementations.SingleNode

我的代码测试失败

我创建了两个自定义“ DataNode”如下:-

然后尝试在它们之间创建一个“边缘”......

我的图表定义如下: -

其配置如下:-

您如何使用继承来存储自定义数据属性

我的 DataNode 类类似于:-

0 投票
1 回答
603 浏览

java - 在 Android Studio 中导入 GraphStream 库

我已经导入了 gs-ui-android 和 gs-core-2.0-alpha 模块,它们也反映在 settings.gradle 中。也将这些包含在 gradle app 模块中

还包括导入语句

我仍然在此代码中遇到错误

错误:包org.graphstream.graph不存在错误:包org.graphstream.graph.implementations不存在错误:找不到符号类SingleGraph错误:不兼容的类型:字符串无法转换为节点错误:找不到符号类查看器

代码示例:

Build.gradle(应用程序模块):