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 …
你们知道为什么WireShark可能会拒绝解码Windows上的gzip'ed http流量吗?
我的配置
在Preferences/Protocols/HTTP中选中"未压缩的实体主体"选项.
以下是我的"Follow TCP Stream"对话框的样子:
当我第一次打开这个对话框时,下面的单选按钮设置为"Raw",但是当我点击"ASCII"时没有任何变化.
有任何想法吗 ?
自从我使用Gephi以来已经有一段时间了,但我曾经非常熟悉v 0.8.xx中的所有内容.
我刚刚将节点和边缘文件加载到v0.9.0的全新安装中.它们在数据实验室中显示正常,上下文菜单显示它们存在.但是我的图表上没有显示任何内容,我无法弄清楚原因.
谁能告诉我我做错了什么?
我想构建一个有向网络图的子图,其中所有顶点共享一个顶点属性(比如,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()
根据另一个顶点属性(在这种情况下为地理位置)进行计算.
预先感谢您提出的任何建议!
我正在学习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()
但它也没有显示方向.
有人可以帮我找到制作有向图的正确方法吗?
谢谢.
我有一个网络,当我绘制它时,有许多重叠的节点.我想更改颜色的不透明度,以便在重叠时可以看到其他节点.例如,请参阅此视频: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的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包,因为当我想分析节点之间的链接时,它提供了我以后可能需要的许多功能.
我想使用pymnet可视化多层网络。包文档中的示例显示了如何绘制多层网络(下图的左侧),但我想添加另一个层(橙色),该层将显示在与蓝色层相似的级别。我知道如何添加另一层,但它会在蓝色层之上。我需要的是我当前情节旁边的一个图层。
可以使用以下方法创建原始图:
from pymnet import *
fig=draw(er(10,3*[0.4]),layout="spring")
Run Code Online (Sandbox Code Playgroud)
这就是我想要得到的:
有没有办法在pymnet 中实现它?如果没有,是否有另一个包可以绘制此图?
我正在尝试绘制仅显示某些顶点的标签的图形.在这种情况下,我想只显示具有一定数量边的顶点的标签.
我正在读取图形对象中的顶点和边缘,如下所示:
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) 我正在尝试使用该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)
我想做的是子集/过滤我指定的任何给定节点上游的网络。由于
sfnetworks
用于igraph
底层网络数据结构,我尝试使用igraph::shortest_paths
获取上游节点:
#' …
Run Code Online (Sandbox Code Playgroud)