我有兴趣坚持个人有向图.这个问题不是要求一个全面的图形数据库解决方案,而是一个我可以用来保存和单个任意有向图的文档格式. 我不知道符号和文件格式是最明智的选择.
我主要担心的是:
表现力/灵活性 - 我希望能够表达不同类型的图表.虽然标准用例是一个简单的有向图,但应该可以表达树,循环图,多图.作为最低限度,我希望支持边缘和节点的标记和加权.用于描述高图和边缘合成/超边缘的符号也是非常需要的,尽管我知道这些解决方案可能不存在.
类型系统独立 - 我有兴趣表示图形的结构质量.一些解决方案包括用于类型化边缘和节点的可扩展类型系统(例如RDF/OWL).如果有明确定义的类型元素到基元(节点/边缘/属性)的规范分解,我只会对这种表示感兴趣.我在这里要避免的是能够进行等效图的多个表示,其中等价是不可辨别的.
规范表示 - 应该有一种机制允许图形被规范地表示(以这种方式,规范表示的词汇等价可以用来确定等价).
独立呈现 - 我更喜欢一种不依赖于图表表示的符号.这将包括空间方向,颜色,字体等.我只对表示数据感兴趣.我不喜欢DOT语言,DGML或SVG(至少对于这个特定目的)的一个特征是关注视觉表示.
标准化/开放/兼容 - 我必须做的实施工作越少越好.如果格式是标准化的并且已经存在用于处理格式的可靠工具,则更优选.伴随这个要求是另一个,格式应该是高度兼容的.微软DGML的专有性质是我厌恶的原因,尽管Visual Studio工具和我主要使用.NET(现在)的事实.W3C发布RDF标准的事实是将RDF的有限子集视为代表性工具的动机.我也很欣赏GXL和GraphML,因为它们有很好的文档xml模式,因此有助于将数据与任何兼容xml的软件包集成.
简单/可读性 - 我欣赏人类可读的语法和易于解释.我也很欣赏能够简化解析的表示.出于这个原因,我喜欢GML,但我担心它不够主流,不能成为一个现实的选择.我还会考虑JSON或YAML的可读性,如果它们各自能够代表复杂(非DAG)结构的能力不是那么有限的话.
效率/简洁表示 - 值得考虑的是,我最终选择的任何格式都不可避免地必须通过某些网络进行持久化和转移.因此,文件大小是一个相关的考虑因素.
我意识到我很可能无法找到满足我愿望清单上所有标准的解决方案.我只要求是最接近我想要的文件格式,并且不限制可扩展性不支持的用例.
我有一个GraphML文件,我必须在网页上显示它,以及使用JavaScript更改显示属性(比如更改节点的颜色,边缘等).
可能吗?
如果有任何JavaScript库要加载,解析并在网页上绘制GraphML,请告诉我.
我想在yEd创建的graphml文件中获取所有节点和一些属性(例如标签名称)的列表,而不管它们在图形中的位置.这与已经部分地处理(在蟒蛇networkx处理XML文件和如何循环GraphML与LXML文件),但不是当内YED你"团"节点-和我有很多分组分组内.
尝试过networkx和lxml,但没有使用建议的简单方法获得完整的结果集 - 任何关于优雅解决方法的建议以及使用哪个库都不能递归地迭代树并识别组节点并再次向下钻取.
例:
当您有分组时,使用networkx的非常简单的图表的示例输出:
('n0', {})
('n1', {'y': '0.0', 'x': '26.007967509920633', 'label': 'A'})
('n0::n0', {})
('n0::n1', {})
Run Code Online (Sandbox Code Playgroud)
我最近发现了一个.graphml文件,但不知道如何从命令行打开它.我是否需要安装一些东西来从命令行在ubuntu中查看这些文件?我试过谷歌但找不到任何与此主题相关的结果.
在NetworkX中为图形生成x/y布局坐标后,如何使用GraphML之类的东西将图形与节点位置一起导出为节点定义的一部分?
布局算法似乎没有直接注释图形?或者他们?!
如何在 d3.js 中使用 graphml 文件?[我想画一个力有向图]
将文件转换为 .json 是否更简单?如何 ?我一直找不到转换器(我找到了一个 python 转换器,但我不是 python 用户)
可以直接使用graphml文件吗?可能是 d3.xml 吗?
注意:graphml 看起来像这样
<graph id="G" edgedefault="directed">
<node id="n0">
<data key="v_name">JohnMaynardKe...</data>
<data key="v_label">John Maynard Ke...</data>
<data key="v_size">4</data>
<data key="v_label.cex">0.3</data>
<data key="v_frame.color">#ffffff00</data>
<data key="v_color">#54FF00CC</data>
</node>
<node id="n1">
<data key="v_name">JosephA.Schum...</data>
<data key="v_label">Joseph A. Schum...</data>
<data key="v_size">4</data>
<data key="v_label.cex">0.3</data>
<data key="v_frame.color">#ffffff00</data>
<data key="v_color">#54FF00CC</data>
</node>
<edge source="n0" target="n1">
<data key="e_nombre">2</data>
<data key="e_width">2</data>
<data key="e_arrow.size">0</data>
<data key="e_color">#00000021</data>
</edge>
<edge source="n0" target="n7">
<data key="e_nombre">2</data>
<data key="e_width">2</data>
<data key="e_arrow.size">0</data>
<data key="e_color">#00000021</data>
</edge>
Run Code Online (Sandbox Code Playgroud)
....
救命!我正在寻找创建一个Java应用程序,它可以生成以下任何一种格式的图形:
到目前为止,我找到了这些解决方案:
我使用的JGraphT代码:
UndirectedGraph<String, DefaultEdge> g = new SimpleGraph<String, DefaultEdge>(DefaultEdge.class);
String v1 = …
Run Code Online (Sandbox Code Playgroud) 在Mac OSX或Linux上可视化GraphML中定义的图形的最佳选项是什么?根据gremlin-users组, R + iGraph似乎是一个有效的解决方案,但我想知道是否有更简单的解决方案,理想情况下是一个简单的"graphml2png"命令行应用程序.任何的想法 ?
如何使用"graphml"文件作为输入在graphvis中绘制图形.
我知道为此目的graphvis
而来,graphml2gv
但当我尝试从命令提示符运行此命令时,我收到此消息
cvtgxl: not configured for conversion from GXL to GV
graphml ×10
file-format ×2
graph ×2
python ×2
d3.js ×1
force-layout ×1
graphviz ×1
java ×1
javascript ×1
json ×1
networkx ×1
rdf ×1
styling ×1
ubuntu ×1
xml ×1