使用java的jgrapht的库组织的图像快速可视化,该如何做呢?
这里给出一个简洁的办法。
工具:
1、java的graph的库: https://jgrapht.org/
2、JavaScript的可视化在线图工具:https://www.draw.io/
用于打印边的类
public class SimpleDefaultEdge extends DefaultEdge { /** * */ private static final long serialVersionUID = 1870891835682617414L; @Override public Object getSource() { return super.getSource(); } @Override public Object getTarget() { return super.getTarget(); } /* * (non-Javadoc) * @see java.lang.Object#toString() */ @Override public String toString() { return String.format("%s->%s", this.getSource(), this.getTarget()); } }
图的组织
public static void test026() throws Exception { Graph<Integer, SimpleDefaultEdge> dag = new DirectedAcyclicGraph<Integer, SimpleDefaultEdge>(SimpleDefaultEdge.class); /** * DAG的结构如下,有3个联通子图。 * * <pre> * 1 9 10 11 * / | | \ | | * 2 3 4 5 12 * \ | / | / * 6 7 * \ /| * 8 13 * </pre> */ IntStream.rangeClosed(1, 13).forEach(v -> { dag.addVertex(v); }); dag.addEdge(1, 2); dag.addEdge(1, 3); dag.addEdge(1, 4); dag.addEdge(1, 5); dag.addEdge(9, 5); dag.addEdge(2, 6); dag.addEdge(3, 6); dag.addEdge(4, 6); dag.addEdge(4, 7); dag.addEdge(5, 7); dag.addEdge(6, 8); dag.addEdge(7, 8); dag.addEdge(7, 13); dag.addEdge(11, 12); dag.edgeSet().forEach(e -> { System.out.println(e); }); }
输出 写道
1->2
1->3
1->4
1->5
9->5
2->6
3->6
4->6
4->7
5->7
6->8
7->8
7->13
11->12
1->3
1->4
1->5
9->5
2->6
3->6
4->6
4->7
5->7
6->8
7->8
7->13
11->12
进入 https://www.draw.io/ 找到菜单“调整图形” -> “插入”-> “高级”-> “从文本...”。 在弹出的对话框里面的select下拉框里面选择“图标”,可以看见里面有范例代码如下:
写道
;Example:
a->b
b->edge label->c
c->a
a->b
b->edge label->c
c->a
我们把刚刚java里面输出的内容更新到里面,如下:
写道
;Example:
1->2
1->3
1->4
1->5
9->5
2->6
3->6
4->6
4->7
5->7
6->8
7->8
7->13
11->12
1->2
1->3
1->4
1->5
9->5
2->6
3->6
4->6
4->7
5->7
6->8
7->8
7->13
11->12
点击插入按钮,数据就从jgraph导入到drawio了,实现了可视化。
可能导入之后的图形布局看着不是很舒服,可以进行调整。进入菜单“调整图形”->“布局”->"垂直流" ,可以调整布局。也可以在这里进行其他方式的布局调整。
相关推荐
**jgraph-draw.io** 是一个在线的图形编辑工具,专用于创建和编辑流程图。它基于 **jGraph** 技术,提供了一个用户友好的Web界面,使得非技术人员也能轻松绘制各种流程、图表和组织结构。这个工具的灵活性和易用性使...
通过JGraph,用户可以轻松地创建各种类型的图表,包括但不限于流程图、网络图、组织结构图等。该功能主要依赖于其强大的绘图引擎,能够支持复杂的图表结构和样式定制。 ##### 2.2 图表交互(Graph Interaction) ...
JGraph是一款强大的图形绘制库,主要用于创建复杂的二维图表和图形用户界面。它是用Java语言编写的,因此可以跨平台运行。这个压缩包“jgraph源码+例子”包含的是JGraph库的源代码以及相关的示例,对于学习和理解...
它提供了丰富的功能,让开发者能够轻松地构建可交互的、动态的图形模型,适用于数据可视化、流程图、组织结构图等多种场景。JGraph不仅支持基本的图形绘制,还支持拖放操作、事件处理、布局算法等高级特性,使得图形...
通过使用SVG(可缩放矢量图形)或VML(矢量标记语言)作为后端渲染技术,jgraph能够兼容各种现代和旧版浏览器。在iteye博客中,作者liujianeye分享了关于如何利用jgraph进行图形绘制和交互实现的一些实践经验和技巧...
《Drawio:强大的桌面版流程图绘制工具》 在信息化高度发展的今天,流程图作为一种直观、清晰的表达方式,被广泛应用于项目管理、系统设计、软件开发等多个领域。Drawio,这款优秀的流程图绘制工具,以其简洁的界面...
它提供了丰富的功能,使开发者能够轻松地在应用程序中集成可交互的图形元素,如节点、边和复杂的图布局。JGraph的核心是其直观的API,允许程序员通过简单的代码实现复杂的图形操作。 **JGraph手册内容** JGraph的...
JGraph组件下载 JGraph.jar组件下载 javabean组件下载 图像绘制javabean
1. **基础教程**:从创建基本的图形节点和边开始,了解如何在JGraph中布局和绘制图形。 2. **高级教程**:学习如何使用自定义图形、事件处理和动画效果,提升图形界面的用户体验。 3. **实战案例**:通过实际项目...
- **可扩展性**:通过插件机制,开发者可以轻松地扩展jgraph的功能,满足特定应用场景的需求。 #### 三、深入探讨 - **2.1 图形对象与操作** - **节点与边**:在jgraph中,图形的基本构成单位是节点和边,用户...
这是一个开源项目(但对贡献是封闭的),github链接:https://github.com/jgraph,可以绘制流程图、UML、类图、组织结构图、泳道图、E-R图、思维导图等等 draw.io支持多种方式使用:网页访问、客户端、VSCode插件、...
首先,JGraph的核心组件是mxGraph,这是一个灵活且高度可定制的图形编辑框架。它支持各种图形类型,如节点、边和连接,以及复杂的布局算法。通过mxGraph,你可以构建出用于流程图、网络拓扑图、组织结构图等用途的...
它提供了多种预定义的形状和样式,以便快速绘制常见的图表元素。 - **3.2 图形交互**:除了基本的可视化功能外,jgraph还允许用户与图表进行互动,例如拖动节点、添加或删除边等操作。这些交互能力极大地增强了图表...
JGraph不仅提供了基本的图形绘制功能,还支持图形的拖放、缩放、旋转等操作,以及事件处理,如点击、双击、拖动等,这使得开发者能够创建出用户友好且功能强大的可视化应用。 JGraph的开源性质使得开发人员能够查看...
JGraph广泛应用于数据可视化、流程图、网络拓扑图、uml图等场合,尤其是在需要用户交互编辑图形的软件中。例如: - **项目管理工具**:用于展示项目任务间的依赖关系。 - **数据库设计工具**:展示数据库表之间的...
- **技术细节**:JGraph采用了许多先进的编程技术和设计模式,如观察者模式、工厂模式等,来提高代码的可维护性和扩展性。 #### 参考文献 由于篇幅限制,此处未列出具体参考文献。建议访问JGraph的官方网站获取更...
**JGRAPH开发jar详解** JGRAPH是一款强大的图形库,主要用于Java平台上的...无论是数据分析的可视化展示,还是流程图的绘制,JGRAPH都能够满足需求,并且提供了足够的定制空间,让开发者能够打造出个性化的图形界面。
JGraph 有多个版本,其中 JGraphX(也称为 JGraph Swing)是面向 Swing 应用程序的版本,而 JGraphT 则专注于图理论和算法。JGraph 还有一个开源社区,提供了许多扩展和示例。 **2. JGraph 的图形应用** JGraph 的...
JGraph 是一款强大的图形库,主要用于创建流程图和其他类型的图形可视化应用。它为开发者提供了丰富的功能,包括图形的创建、编辑、布局以及交互性。在本文中,我们将深入探讨 JGraph 的核心概念、使用方法以及如何...
文件名"Jgraph"可能是指JGraph的示例代码或者文档,通过查看这个文件,你可以学习如何使用JGraph库来创建和管理有向图,包括导入和导出数据、添加和删除节点、应用不同的布局策略以及处理用户交互等。 总的来说,...