如何在D3.js中的强制定向布局中关联LinkDistance和LinkStrength?我假设他们是,如果我错了,请纠正我.
我知道linkDistance定义了任何节点对之间的长度,并且在力布局中基本上用作约束.但是linkStrength扮演什么角色?D3.js的API文档将其定义为"在[0,1]范围内指定值的链接的强度(刚性)""刚性"在这里的含义是什么?
我写了一个脚本来导出twitter朋友作为foaf rdf描述.现在我正在寻找一种可视化朋友网络的工具.我试过http://foafscape.berlios.de/但是对于300多个节点来说它真的很慢并且在自动格式化方面做得不好.
有关优秀图形可视化工具的任何提示?如果他们不直接支持foaf,那就没关系,但他们应该能够使用图形节点的图像并能够显示大图.Linux支持会很好.
哦,我正在寻找一种可以手动移动节点的交互式工具.
更新:感谢您的意见.我知道graphviz和静态图像真的很棒.但对于大型数据集,我需要能够选择节点并突出显示所有邻居.
我正在为.net框架寻找一个开源(GPL,LGPL等)图形布局库,最好是完全托管代码.我并不担心事物的可视化方面.
我可以找到很多用于Java的,但没有用于.net ...
谢谢!
在图论中,平面图是可以嵌入平面中的图,即,它可以在平面上绘制,使得其边缘仅在它们的端点处相交.
它们是用于平面图测试的许多算法(即确定给定图是否是平面图).最好的是在O(n)中,其中n是顶点的数量.
存在哪些支持以下功能的开源程序:
我想做这里显示的例子.它在我的机器上运行得非常好.问题是,我无法将节点的坐标作为存储在变量pos中某处的数组.我该怎么做呢?
在此先感谢您的回复!
在我的Winforms应用程序中,我有一个小图表.没有什么比我用线条连接的一堆x/y点更好看.
绘制曲线而不是线来连接这些点会很不错.但由于数学从来都不是我的强项,我不知道该怎么做.
任何样品或建议都会有所帮助.
我一直在一些项目上使用pygraph。我完成了此示例,效果很好。
现在,问题出在以下方面:图形以图片格式(gif)绘制。我需要获取gif图像上显示的图形布局的每个节点的实际坐标。我该怎么做呢?我一直在努力,但是找不到解决此问题的方法。我认为问题的解决方案将以某种方式处理以下两行之一:
gv.layout(gvv,'dot')
gv.render(gvv,'png','europe.png')
Run Code Online (Sandbox Code Playgroud)
提前致谢!
我正在将 JUNG 库用于网络图。我还发现了 sugiyama 布局的实现:http : //sourceforge.net/tracker/? func=detail&aid=2944336&group_id=73840&atid=539121 但不幸的是,它的边缘交叉方法似乎不起作用,我无法解决它。节点的垂直对齐几乎是正确的。
(除非此 JUNG 算法没有无错误版本) 有人知道另一种实现吗?只要它是免费的并且可以包装它,任何 Java 代码(因此不一定是 JUNG)就足够了。如果有一个用另一种语言编写的非常好的库,可以获取图形并返回具有固定节点位置的图形文件,它也会有所帮助:)
我想尝试使用替代族力函数来实现力导向图形布局。
对于每个节点n_i,我可以定义一个“力函数”,f_i这样
f_i ( n_i )同样为零;和f_i ( n_j ),其中, 是由于其他节点而施加n_i != n_j在节点上的力。n_in_j节点上的净力n_i应为力的矢量和f_i ( n_j ),其中n_j范围涵盖所有其他节点1。
有没有办法告诉 d3.js在布局算法中使用这些自定义强制函数?
[ d3.js 的力导向布局的文档描述了可以调整其内置力函数的各种方法,但我无法找到一种方法来完全指定完全不同的力函数,即力函数无法通过调整内置力函数的参数来实现。]
1n_i IOW,除了根据其力函数计算的力之外,不应有其他/额外的力作用于节点f_i。
我正在构建一个简单的示例应用程序来测试 MSAGL,但如果我在显示图形后添加一条边,则会收到 KeyNotFoundException。
我想这与我需要以某种方式刷新一些数据有关 - 或者可能使用另一种方法,但不知道如何。
样本:
private void MainWindow_Loaded(object sender, RoutedEventArgs e) {
GraphViewer graphViewer = new GraphViewer();
graphViewer.BindToPanel(Panel);
Graph graph = new Graph();
graph.AddEdge("A", "B");
graphViewer.MouseUp += (s, ev) =>
{
if (graphViewer.ObjectUnderMouseCursor != null)
{
graph.AddEdge("A", "C"); // BOOM!
}
};
graph.Attr.LayerDirection = LayerDirection.LR;
graphViewer.Graph = graph;
}
Run Code Online (Sandbox Code Playgroud)
异常详细信息:
System.Collections.Generic.KeyNotFoundException was unhandled
HResult=-2146232969
Message=The given key was not present in the dictionary.
Source=mscorlib
StackTrace:
at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
at Microsoft.Msagl.WpfGraphControl.GraphViewer.<CreateVNode>b__1d(Edge e) in c:\Users\br\Desktop\MSAGL\automatic-graph-layout-master\GraphLayout\tools\WpfGraphControl\GraphViewer.cs:line 1263
at Microsoft.Msagl.WpfGraphControl.VNode.<get_OutEdges>b__10(Edge e) in …Run Code Online (Sandbox Code Playgroud) 我使用这样的pytextrank包创建了一个图形对象:
import pytextrank
### ...........................
### Some steps and calculations
### ...........................
graph, ranks = pytextrank.text_rank(path_stage1)
Run Code Online (Sandbox Code Playgroud)
我可以使用这个networkx包来制作这样的networkx图画:
import networkx as nx
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(50,50))
nx.draw(graph, with_labels=True)
plt.show()
Run Code Online (Sandbox Code Playgroud)
但正如你所看到的,这些词主要集中在中心周围.我希望看到各类词之间的分离更高.我怎么做?
graph-layout ×12
graph ×5
python ×3
coordinates ×2
d3.js ×2
.net ×1
algorithm ×1
android ×1
c# ×1
charts ×1
foaf ×1
force-layout ×1
graphviz ×1
java ×1
javascript ×1
jung ×1
layout ×1
linux ×1
msagl ×1
networkx ×1
planar-graph ×1
plot ×1
pygraph ×1
rdf ×1
semantic-web ×1