JUNG 图可视化中的顶点标签
Posted
技术标签:
【中文标题】JUNG 图可视化中的顶点标签【英文标题】:Vertex label in JUNG graph visualization 【发布时间】:2011-03-18 08:42:06 【问题描述】:我写了一个小图形可视化类:
public void simpleGraph(SparseMultigraph<Vertex,SEdge> graph, String name)
Layout<Vertex, SEdge> layout = new ISOMLayout(graph);
layout.setSize(new Dimension(800,800));
BasicVisualizationServer<Vertex, SEdge> vv = new BasicVisualizationServer<Vertex, SEdge>(layout);
vv.setPreferredSize(new Dimension(850,850)); //Sets the viewing area size
JFrame frame = new JFrame(name);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(vv);
frame.pack();
frame.setVisible(true);
如何为顶点和边添加标签?这些值存储在我的自定义顶点类中。我可以遍历 Layout 或 BasicVisualizationServer 中的所有顶点并添加标签吗?
感谢您的帮助!
【问题讨论】:
【参考方案1】:您需要为您的顶点/边调用标签转换器:
vv.getRenderContext().setVertexLabelTransformer(new ToStringLabeller());
这是您经常会在示例中找到的内容。它使用顶点类的 toString() 方法来指定标签。
一个稍微复杂的例子:
vv.getRenderContext().setEdgeLabelTransformer(new Transformer<MyEdge, String>()
public String transform(MyEdge e)
return (e.toString() + " " + e.getWeight() + "/" + e.getCapacity());
);
您不需要遍历边缘; EdgeLabelTransformer 或 VertexLabelTransformer 将在属性更新时标记边缘,VisualizationViewer 将即时更新它们。
【讨论】:
以上是关于JUNG 图可视化中的顶点标签的主要内容,如果未能解决你的问题,请参考以下文章
如何在 JUNG 中添加具有相同标签(但端点不同)的两条边?
R语言使用treemap包中的treemap函数可视化treemap图:treemap将分层数据显示为一组嵌套矩形自定义设置标签颜色标签背景色标签大小字体格式边界线条粗细标签位置等