如何使用荣格根据重量(或其他属性)过滤边缘并显示新网络

用户名

我有一个SparseMultigraph <节点,边> g,其中边具有两个属性:

int weight;
ArrayList<Date> time;

我想根据体重和时间分别过滤图表。假设我开始使用称为weightSlider的JSlider根据重量过滤掉(我在Netbeans和Swing中):

 private void weightSliderMouseReleased(java.awt.event.MouseEvent evt) {                                           
    // filter network according to weight:
    Predicate<Edge> edgeAboveWeight = new Predicate<Edge>() {
        @Override
        public boolean evaluate(Edge e) {
            return e.getWeight() >= weightSlider.getValue();
        }
    };
    EdgePredicateFilter<Node, Edge> edgePredicateFilter = new EdgePredicateFilter<>(edgeAboveWeight);
    Graph<Node, Edge> transform = edgePredicateFilter.transform(g);
}         

我的问题是:如何在可视化视图中推送新图形,同时保留节点位置?

由于这是我第一次尝试这样做,所以我可能错过了实现目标的简单方法,因此任何建议都值得欢迎!

编辑:我成功实现了这一点:

private void weightSliderMouseReleased(java.awt.event.MouseEvent evt) {                                           
    // filter network according to weight:
    Predicate<Edge> edgeAboveWeight = new Predicate<Edge>() {
        @Override
        public boolean evaluate(Edge e) {
            return e.getWeight() >= weightSlider.getValue();
        }
    };
    EdgePredicateFilter<Node, Edge> edgePredicateFilter = new EdgePredicateFilter<>(edgeAboveWeight);
    Graph<Node, Edge> transform = edgePredicateFilter.transform(g);
    layout.setGraph(transform);
    vv.validate();
    vv.repaint();
}        

仍然不知道这是否是最有效的方法,但是它可以工作...

约书亚·奥马达丹(Joshua O'Madadhain)

如果您想过滤实际数据,那么您正在做的就很好。

如果您只想过滤权重低于某个值的边缘,就可以直接告诉PluggableRendererContext:

http://jung.sourceforge.net/doc/api/edu/uci/ics/jung/visualization/PluggableRenderContext.html#setEdgeIncludePredicate(org.apache.commons.collections15.Predicate)

在PluggableRendererDemo中对此进行了演示。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何根据边缘属性过滤节点

如何使用过滤器或其他JS方法显示特定的JSON数据(按属性)

如何根据其他列过滤值?

边缘的重量未显示

在WooCommerce中显示其他信息之前,请检查尺寸,属性和/或重量

Magento:如何根据产品属性显示产品的其他占位符图像

根据从不同边缘的属性派生的信息过滤边缘

如何使用 Logstash 过滤器根据其他列的某些行添加新列?

如何根据其他数据框进行过滤

如何根据其他数据过滤数据库

如何根据其他数组的值过滤对象数组?

如何根据其他微调框选择过滤微调框?

如何根据其他非相关模型过滤django模型

与其他行相比,如何根据列表过滤系列?

如何根据其他条目过滤我的结果?

如何使AdMob中介停止显示来自AdMob的广告并强制使用其他网络?

如何显示一列的最小值并使用同一列的最大值来过滤mysql中的其他属性?

使用 JSON Schema,在将 JSON 解析为 JObject 时如何过滤掉其他属性?

根据交叉突出显示已过滤的度量值来过滤其他表

如何根据其他列和其他条件过滤熊猫数据框并仅保留行

如何增加Networkx边缘的重量?

使用数据属性在过滤上创建其他div

如何根据日期进行分组并添加其他属性

如何根据其他属性值从列表中删除元素?

如何根据ID获取重量变化并使用php和mysql在表格中显示?

使用Angular的matAutocomplete,如何显示对象的属性,但在其他地方引用对象本身?

使用igraph根据边缘属性添加多个边缘

根据其他列的值过滤列

根据其他模型过滤对象