标签: network-analysis

How to efficiently calculate triad census in undirected graph in python

I am calculating triad census as follows for my undirected network.

import networkx as nx
G = nx.Graph()
G.add_edges_from(
    [('A', 'B'), ('A', 'C'), ('D', 'B'), ('E', 'C'), ('E', 'F'),
     ('B', 'H'), ('B', 'G'), ('B', 'F'), ('C', 'G')])

from itertools import combinations
#print(len(list(combinations(G.nodes, 3))))

triad_class = {}
for nodes in combinations(G.nodes, 3):
    n_edges = G.subgraph(nodes).number_of_edges()
    triad_class.setdefault(n_edges, []).append(nodes)
print(triad_class)
Run Code Online (Sandbox Code Playgroud)

It works fine with small networks. However, now I have a bigger network with approximately 4000-8000 nodes. When I try to run …

python graph-theory networkx network-analysis

16
推荐指数
2
解决办法
404
查看次数

WireShark不解码Windows上的gzip'ed http流量

你们知道为什么WireShark可能会拒绝解码Windows上的gzip'ed http流量吗?

我的配置

  • WireShark 1.8.3
  • Windows 7旗舰版x64
  • WinPcap 4.1.2

在Preferences/Protocols/HTTP中选中"未压缩的实体主体"选项.

以下是我的"Follow TCP Stream"对话框的样子:

在此输入图像描述

当我第一次打开这个对话框时,下面的单选按钮设置为"Raw",但是当我点击"ASCII"时没有任何变化.

有任何想法吗 ?

gzip http wireshark network-analysis

12
推荐指数
2
解决办法
1万
查看次数

Gephi没有在图表上显示节点和边缘

自从我使用Gephi以来已经有一段时间了,但我曾经非常熟悉v 0.8.xx中的所有内容.

我刚刚将节点和边缘文件加载到v0.9.0的全新安装中.它们在数据实验室中显示正常,上下文菜单显示它们存在.但是我的图表上没有显示任何内容,我无法弄清楚原因.

谁能告诉我我做错了什么?

我的Gephi工作区

edges nodes gephi network-analysis

8
推荐指数
1
解决办法
7809
查看次数

igraph - 作为子图的邻居 - make_ego_graph()作为单个图

我想构建一个有向网络图的子图,其中所有顶点共享一个顶点属性(比如,V(Grph)$ year =="1952")和它们的一阶(立即)邻居,基于只有在外面.

我试过ego(),make_ego_graph(),neighbors(),和adjacent_vertices().

例如, CitGraph <- make_ego_graph(Grph, 1, nodes = which(V(Grph)$year=="1952"), mode = "out") 产生一个图表列表(而不是单个综合图表),并且令人惊讶的是,今年50k顶点需要两个小时,并且指向了150k个邻居.

我能想到的一种方法是聚合列表中的所有这些图,但不知道如何.此外,我想保留顶点属性,因为我的最终目标是assortativity_nominal()根据另一个顶点属性(在这种情况下为地理位置)进行计算.

预先感谢您提出的任何建议!

r igraph network-analysis

8
推荐指数
1
解决办法
2932
查看次数

无法使用来自networkx的from_pandas_dataframe创建有向图

我正在学习networkx库并使用twitter转发有向图数据.我首先将数据集读入pandas df(列是'from','to','weight'),并希望使用下面的代码将前300行(转推)放入图形中:

tw_small = nx.from_pandas_dataframe(edges_df[:300],source='from',
                                   target='to',edge_attr=True)
Run Code Online (Sandbox Code Playgroud)

我认为它正确地创建了一个图形,但是当我运行时tw_small.is_directed(),它表示False(无向图)并且我绘制了一个图形,nx.draw()但它也没有显示方向.

有人可以帮我找到制作有向图的正确方法吗?

谢谢.

python graph networkx network-analysis

8
推荐指数
2
解决办法
3998
查看次数

在R中的iGraph中更改节点/顶点不透明度

我有一个网络,当我绘制它时,有许多重叠的节点.我想更改颜色的不透明度,以便在重叠时可以看到其他节点.例如,请参阅此视频:https://vimeo.com/52390053

我正在使用iGraph我的情节.这是一个简化的代码模糊:

net1 <- graph.data.frame(myedgelist, vertices=nodeslist, directed = TRUE)

g <- graph.adjacency(get.adjacency(net1))

V(g)$color <- nodeslist$colors  #This is a set of specific colors corresponding to each node. They are in the format "skyblue3". (These plot correctly for me). 

E(g)$color <-"gray" 

plot.igraph(g)
Run Code Online (Sandbox Code Playgroud)

但是,我无法找到iGraph更改节点颜色不透明度的选项.

知道怎么做这个吗?我想也许是这样的V(g)$alpha <- 0.8,但这没有做任何事情.

r opacity igraph network-analysis

7
推荐指数
2
解决办法
4241
查看次数

使用地理坐标作为igraph r-package中的顶点坐标

在R的igraph包中,我正在努力使用纬度/经度坐标作为图形的布局来绘制社交网络.

想象一下这个简单的例子:一个有4个节点的网络,你知道它们的地理位置和连接:

df<-data.frame("from" = c("Bob", "Klaus", "Edith", "Liu"), "to"= c("Edith", "Edith", "Bob", "Klaus"))
Run Code Online (Sandbox Code Playgroud)

在这里你有节点的元数据,所以鲍勃住在纽约,柏林的克劳斯,巴黎的伊迪丝和北京的刘:

meta <- data.frame("name"=c("Bob", "Klaus", "Edith", "Liu"), "lon"=c(-74.00714, 13.37699, 2.34120, 116.40708),  "lat"=c(40.71455, 52.51607, 48.85693, 39.90469))
Run Code Online (Sandbox Code Playgroud)

我们把g作为igraph对象......

g <- graph.data.frame(df, directed=T, vertices=meta)
Run Code Online (Sandbox Code Playgroud)

...我们将布局定义为经度/纬度坐标

lo <- layout.norm(as.matrix(meta[,2:3]))
plot.igraph(g, layout=lo)
Run Code Online (Sandbox Code Playgroud)

如果您使用这些(真实)地理坐标运行此示例,您将看到它相对于彼此正确的意义上的"相对"准确.但是,如果我绘制这样的坐标很多,那么世界笛卡尔地图看起来"伸展开来".

有没有办法可以在世界地图上绘制我的节点,以便坐标100%正确,我可以看到节点之间的连接?我真的想继续使用igraph包,因为当我想分析节点之间的链接时,它提供了我以后可能需要的许多功能.

r geolocation igraph network-analysis

7
推荐指数
1
解决办法
5826
查看次数

在 pymnet 中修改多层网络图

我想使用pymnet可视化多层网络。包文档中的示例显示了如何绘制多层网络(下图的左侧),但我想添加另一个层(橙色),该层将显示在与蓝色层相似的级别。我知道如何添加另一层,但它会在蓝色层之上。我需要的是我当前情节旁边的一个图层。

可以使用以下方法创建原始图:

from pymnet import *
fig=draw(er(10,3*[0.4]),layout="spring")
Run Code Online (Sandbox Code Playgroud)

这就是我想要得到的:

在此处输入图片说明

有没有办法在pymnet 中实现它?如果没有,是否有另一个包可以绘制此图?

python visualization network-analysis pymnet

7
推荐指数
1
解决办法
995
查看次数

使用R中的igraph仅显示网络图上的特定标签

我正在尝试绘制仅显示某些顶点的标签的图形.在这种情况下,我想只显示具有一定数量边的顶点的标签.

我正在读取图形对象中的顶点和边缘,如下所示:

nodes <- read.csv("path_to_file.csv")
edges <- read.csv("path_to_file.csv")
g <- graph_from_data_frame(edges,directed=TRUE,vertices=nodes)
Run Code Online (Sandbox Code Playgroud)

我使用以下命令绘制图形并根据连接数改变边缘的宽度($ rels属性是两个顶点之间的连接数):

plot.igraph(g,vertex.size=3,vertex.label.cex=0.5,layout=layout.fruchterman.reingold(g,niter=10000),edge.arrow.size=0.15,edge.width=E(g)$rels/100)
Run Code Online (Sandbox Code Playgroud)

有没有办法说,例如,只有> 100边的顶点应该显示其标签?如果我尝试在我的csv文件中保留顶点标签,igraph认为它们是重复的顶点.


数据示例

nodes.csv
name | org_id
U.S. Department of Energy | 70063
Environmental Protection Agency | 100000

edges.csv
from | to | rels
U.S. Department of Energy | Hanford SSAB | 477
Natural Resources Defense Council | Environmental Protection Agency | 322
Run Code Online (Sandbox Code Playgroud)

r igraph network-analysis

6
推荐指数
1
解决办法
5159
查看次数

使用 R 包 sfnetworks 对给定节点上游的河流网络进行子集化

我正在尝试使用该sfnetworks 来查询河流网络。具体来说,我想相对于任何给定站点对河流网络的上游部分进行子集化。

我有一个小型河流网络数据集(可在此处获取),我可以将其转换为sfnetwork,该数据集由包定义为具有空间明确边缘的有根树。生成的网络是有向非循环图(参见ggraph下图)。

library(sf)
library(sfnetworks)
library(ggraph)
library(cowplot)

ss <- st_read(file.path("stream_network_subsetS_KNIG.gpkg")) # subset small network (Lull Creek)

#' create sfnetwork object from river network
#' https://github.com/luukvdmeer/sfnetworks/discussions/143
n.ss <- as_sfnetwork(st_cast(ss, "LINESTRING"))

n.ss

plot(n.ss)

#' visualize directness of network
ggraph(n.ss, layout = "tree") +
  geom_node_point(size = 1) +
  geom_edge_link(arrow = arrow(length = unit(2, 'mm'), ends = "first"),
                 end_cap = circle(2, 'mm'),
                 start_cap = circle(2, 'mm')) +
  theme_graph()
Run Code Online (Sandbox Code Playgroud)

sfnetwork对象的直接性 我想做的是子集/过滤我指定的任何给定节点上游的网络。由于sfnetworks用于igraph底层网络数据结构,我尝试使用igraph::shortest_paths获取上游节点:

#' …
Run Code Online (Sandbox Code Playgroud)

r network-analysis r-sf sfnetwork

6
推荐指数
1
解决办法
390
查看次数