Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Svg 以编程方式生成结构化数据的图形(自适应)模型/图表_Svg_Drupal 7_Diagram_Dynamically Generated_Activiti - Fatal编程技术网

Svg 以编程方式生成结构化数据的图形(自适应)模型/图表

Svg 以编程方式生成结构化数据的图形(自适应)模型/图表,svg,drupal-7,diagram,dynamically-generated,activiti,Svg,Drupal 7,Diagram,Dynamically Generated,Activiti,我正在搜索从存储在数据库中的结构化数据生成图表的策略或其他起点。要制作一个与我的要求非常相似的简化示例: Input: DDL SQL to create tables with attributes in a Database. Desired output: ERD diagram of the tables with connections to each other as svg. 我想要构建的图的类型是,但是因为我确信没有直接生成ADAPT图的实现,所以我很乐意使用

我正在搜索从存储在数据库中的结构化数据生成图表的策略或其他起点。要制作一个与我的要求非常相似的简化示例:

Input:          DDL SQL to create tables with attributes in a Database.
Desired output: ERD diagram of the tables with connections to each other as svg.
我想要构建的图的类型是,但是因为我确信没有直接生成ADAPT图的实现,所以我很乐意使用任何可以生成BPMN、EPK或类似模型的实现。ERD的生成器可能是一个开始,但由于ADAPT比ERD更复杂,因此需要大量定制

我目前正在使用创建一个原型,因此该领域的一些东西会很好,但我很高兴有任何可以学习解决核心问题的输入:如何从结构化数据中自动创建图形模型(没有关于元素放置、元素大小等方面的数据或用户交互)

旁注:

  • svg不是硬性要求(可以是png等),但对我来说似乎是最好的选择
  • 我正在构建的应用程序记录了应该成为模型的需求
  • 该解决方案需要集成到web应用程序中。(有某种api)
  • 可以作为图表绘制的基础,但我无法通过API而不是UI找到有关图表创建的信息
  • 可能是一个起点,但除了ERD,我还没有看到任何工作
  • 这是一个学生项目,所以预算是有限的

有许多可用的图表库,每种图库都有各自的优缺点。这在很大程度上取决于你的确切要求。我建议你评估一些备选方案,看看什么最适合你

我的想法:在商业场景中,为各种平台提供一套库可能是一种选择。据我所见,基于HTML/JavaScript的解决方案应该能够很好地满足您的需求:可以很容易地告诉它从各种输入源获取数据,自动创建结构,最重要的是计算图表的布局,以便可以立即查看,而不必手动排列。此外,您还可以对库进行高度定制:您可以使项目看起来像“ADAPT”中的项目,定制用户交互,以便只允许有效的模型更改(如果需要交互编辑),当然,还可以使用灵活的Javascript API以编程方式完成所有这些操作

这里有一个很好的例子来说明这种能力:

完全披露:我为yWorks工作,但在Stackoverflow上我不代表我的雇主。

您可以通过命令行生成“点语言”,然后运行Graphviz“DOT.exe程序,该程序输入点语言文件并输出.svg文件。这种方法非常简单,因为您不需要通过API使用Graphviz,而只需要从任何编程环境生成文本文件

不确定这是否对你有帮助;也许只是一般的想法可能有用


不过,更进一步说,我在一个开源项目中完成了这项工作,与您在上面特别描述的内容的显著区别在于,我的项目采用表格(自描述、结构化)数据,而不是SQL DDL作为其用户输入。输出是概念和关系形式的信息,可通过多种方式使用(搜索、操纵、图解),其中之一是生成.svg输出,显示各种颜色和形状的实体,这些实体通过各种颜色和标记的箭头相互连接。.svg输出是通过将概念和关系转换为适当的点文件,然后通过命令行运行Graphviz,然后在.svg输出上启动Firefox来完成的。与您需要的有很多不同,但布局完全由Graphviz处理。

谢谢Sebastian。我用的是yEd,这是一个很棒的工具,不知道你有这么先进的基于web的编辑器。我正在开发的软件是我的学士学位论文的一部分,所以我愿意投资一些钱在好的软件上,但学术版的yFiles for HTML单开发者许可证的2.640欧元超出了我在短短两个月的使用预算。感谢您分享您的经验和代码。SQLDDL只是一个例子。我将以结构化的方式获取信息,因此在这方面,它与您开发的内容有些相似。我认为最大的区别是我的目标是更复杂的形状(ADAP)。我想GraphViz是我最好的选择。由于您的代码可能有助于我入门,因此我将奖励您的答案。好的,请查看github上的QuickRDA项目。如何从结构化数据到自适应图是一个非常具体的问题。一个很可能没有人能回答的问题,因为根本没有。那么,我该如何在不扩大问题范围的情况下将其视为这样一个问题呢?我的问题是询问从结构化数据到图形模型的策略。欢迎提出任何建议。我收到了一些有用的答案,你没有什么比结束这个问题更好的了,因为我写道,我也会对工具或库感兴趣,以此作为出发点。你甚至连答案都投了反对票——WTF?