python绘制社会关系网络图_Python networkx 网络图绘制

简单演示

20180604011651_266.jpg

import networkx as nx

import matplotlib.pyplot as plt

# 定义空图

g = nx.Graph()

# 增加节点

g.add_node(1)

g.add_node('A')

g.add_nodes_from([2, 3])

g.add_edge(2, 3)

g.add_edges_from([(1, 2), (1, 3)])

nx.draw(g, with_labels=True)

plt.show()

一次增加多个点

20180604011651_689.jpg

import networkx as nx

import matplotlib.pyplot as plt

# 定义空图

g = nx.Graph()

h = nx.path_graph(10)

g.add_nodes_from(h)

nx.draw(g, with_labels=True)

plt.show()

有颜色的图

20180604011651_111.jpg

import networkx as nx

import matplotlib.pyplot as plt

# 定义空图

g = nx.Graph()

# 导入所有边,每条边分别用tuple表示

g.add_edges_from([(1, 2), (1, 3), (2, 4), (2, 5), (3, 6), (4, 8), (5, 8), (3, 7)])

nx.draw(g,

with_labels=True,

edge_color='b',

node_color='g',

node_size=1000)

# 如果你想保存图片,去除这句的注释

# plt.savefig('./generated_image.png')

plt.show()

20180604011651_201.jpg

import networkx as nx

import matplotlib.pyplot as plt

# 定义空图

g = nx.Graph()

g.add_cycle([1, 2, 3, 4, 5])

nx.draw(g, with_labels=True)

plt.show()

五角星

20180604011651_329.jpg

import networkx as nx

import matplotlib.pyplot as plt

G = nx.Graph()

G.add_nodes_from([1, 2, 3, 4, 5])

for i in range(5):

for j in range(i):

if (abs(i - j) not in (1, 4)):

G.add_edge(i + 1, j + 1)

nx.draw(G,

with_labels=True, # 这个选项让节点有名称

edge_color='b', # b stands for blue!

pos=nx.circular_layout(G), # 这个是选项选择点的排列方式,具体可以用 help(nx.drawing.layout) 查看

# 主要有spring_layout (default), random_layout, circle_layout, shell_layout

# 这里是环形排布,还有随机排列等其他方式

node_color='r', # r = red

node_size=1000, # 节点大小

width=3, # 边的宽度

)

plt.show()

随机绘图

20180604011651_348.jpg

import random

import networkx as nx

import matplotlib.pyplot as plt

G = nx.gnp_random_graph(10, 0.3)

for u, v, d in G.edges(data=True):

d['weight'] = random.random()

edges, weights = zip(*nx.get_edge_attributes(G, 'weight').items())

pos = nx.spring_layout(G)

nx.draw(G, pos, node_color='b', edgelist=edges, edge_color=weights, width=10.0, edge_cmap=plt.cm.Blues)

# plt.savefig('edges.png')

plt.show()

有权重的图

20180604011651_996.jpg

import matplotlib.pyplot as plt

import networkx as nx

G = nx.Graph()

G.add_edge('a', 'b', weight=0.6)

G.add_edge('a', 'c', weight=0.2)

G.add_edge('c', 'd', weight=0.1)

G.add_edge('c', 'e', weight=0.7)

G.add_edge('c', 'f', weight=0.9)

G.add_edge('a', 'd', weight=0.3)

elarge = [(u, v) for (u, v, d) in G.edges(data=True) if d['weight'] > 0.5]

esmall = [(u, v) for (u, v, d) in G.edges(data=True) if d['weight'] <= 0.5]

pos = nx.spring_layout(G) # positions for all nodes

# nodes

nx.draw_networkx_nodes(G, pos, node_size=700)

# edges

nx.draw_networkx_edges(G, pos, edgelist=elarge,

width=6)

nx.draw_networkx_edges(G, pos, edgelist=esmall,

width=6, alpha=0.5, edge_color='b', style='dashed')

# labels

nx.draw_networkx_labels(G, pos, font_size=20, font_family='sans-serif')

plt.axis('off')

plt.show()

有向图

20180604011651_32.jpg

import matplotlib.pyplot as plt

import networkx as nx

G = nx.generators.directed.random_k_out_graph(10, 3, 0.5)

pos = nx.layout.spring_layout(G)

node_sizes = [3 + 10 * i for i in range(len(G))]

M = G.number_of_edges()

edge_colors = range(2, M + 2)

edge_alphas = [(5 + i) / (M + 4) for i in range(M)]

nodes = nx.draw_networkx_nodes(G, pos, node_size=node_sizes, node_color='blue')

edges = nx.draw_networkx_edges(G, pos, node_size=node_sizes, arrowstyle='->',

arrowsize=10, edge_color=edge_colors,

edge_cmap=plt.cm.Blues, width=2)

# set alpha value for each edge

for i in range(M):

edges[i].set_alpha(edge_alphas[i])

ax = plt.gca()

ax.set_axis_off()

plt.show()

颜色渐变的节点

20180604011651_284.jpg

import matplotlib.pyplot as plt

import networkx as nx

G = nx.cycle_graph(24)

pos = nx.spring_layout(G, iterations=200)

nx.draw(G, pos, node_color=range(24), node_size=800, cmap=plt.cm.Blues)

plt.show()

颜色渐变的边

20180604011651_548.jpg

import matplotlib.pyplot as plt

import networkx as nx

G = nx.star_graph(20)

pos = nx.spring_layout(G)

colors = range(20)

nx.draw(G, pos, node_color='#A0CBE2', edge_color=colors,

width=4, edge_cmap=plt.cm.Blues, with_labels=False)

plt.show()

多层感知器

import matplotlib.pyplot as plt

import networkx as nx

left, right, bottom, top, layer_sizes = .1, .9, .1, .9, [4, 7, 7, 2]

# 网络离上下左右的距离

# layter_sizes可以自己调整

import random

G = nx.Graph()

v_spacing = (top - bottom) / float(max(layer_sizes))

h_spacing = (right - left) / float(len(layer_sizes) - 1)

node_count = 0

for i, v in enumerate(layer_sizes):

layer_top = v_spacing * (v - 1) / 2. + (top + bottom) / 2.

for j in range(v):

G.add_node(node_count, pos=(left + i * h_spacing, layer_top - j * v_spacing))

node_count += 1

# 这上面的数字调整我想了好半天,汗

for x, (left_nodes, right_nodes) in enumerate(zip(layer_sizes[:-1], layer_sizes[1:])):

for i in range(left_nodes):

for j in range(right_nodes):

G.add_edge(i + sum(layer_sizes[:x]), j + sum(layer_sizes[:x + 1]))

# 慢慢研究吧

pos = nx.get_node_attributes(G, 'pos')

# 把每个节点中的位置pos信息导出来

nx.draw(G, pos,

node_color=range(node_count),

with_labels=True,

node_size=200,

edge_color=[random.random() for i in range(len(G.edges))],

width=3,

cmap=plt.cm.Dark2, # matplotlib的调色板,可以搜搜,很多颜色呢

edge_cmap=plt.cm.Blues

)

plt.show()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/551615.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

查看LINUX放开端口,linux如何查看端口是否开放?

在linux中我们可以通过在命令行中使用lsof命令、netstat命令来检查端口是否开放。方法一&#xff1a;使用lsof命令我们可以使用lsof命令来检查某一端口是否开放&#xff0c;基本语法如下&#xff1a;lsof -i:端口号如果没有任何输出则说明没有开启该端口号下图以80端口和53端口…

python数据处理框架_python 最快 web 框架 Sanci 快速入门

简介 Sanic 是一个和类Flask 的基于Python3.5的web框架&#xff0c;它编写的代码速度特别快。 除了像Flask 以外&#xff0c;Sanic 还支持以异步请求的方式处理请求。这意味着你可以使用新的 async/await 语法&#xff0c;编写非阻塞的快速的代码。 关于 asyncio 包的介绍&…

linux tcp ip c,Linux下TCP/IP编程--TCP实战(select)

本文参考自徐晓鑫《后台开发》&#xff0c;记录之。一、为什么要使用非阻塞I/O之select初学socket的人可能不爱用select写程序&#xff0c;而习惯诸如connect、accept、recv/recvfrom这样的阻塞程序。当让服务器同时为多个客户端提供一问一答服务时&#xff0c;很多程序员采用多…

单片机8×8点阵显示简单汉字的程序_干货 | 浅析单片机制作贪吃蛇游戏

为了让大家更深入地了解底层的原理&#xff0c;在讲解时特意选择了51单片机(而非STM系列)&#xff0c;另外16*16点阵由译码器和移位缓存器直接驱动(而非MAX系列芯片)&#xff0c;摇杆也利用ADC功能判断方向。那如何让单片机驱动这256个点呢&#xff1f;直接用IO口驱动显然不够且…

怎样在linux中创建硬盘,在linux中添加新硬盘并创建LVM组

1、以虚拟机为例&#xff0c;给虚拟机添加一块新硬盘&#xff0c;并创建LVM组&#xff0c;将新硬盘用于存放oracle数据库文件。2、fdisk -ll查看新添加的硬盘是否被识别&#xff0c;如图已经识别出sdb。3、# pvcreate /dev/sdb (创建PV&#xff0c;相当于win中将基础磁盘转换…

双代号网络图基础算法_软考网络工程师之系统开发和运行基础(软件分类、测试、模型)...

系统开发和运行基础(软件的分类、软件生存周期、软件开发模型、软件测试、软件项目管理)软件的分类系统软件&#xff0c;如操作系统。支撑软件&#xff0c;如开发工具。应用软件&#xff0c;如office。实时处理软件&#xff0c;一般是工业软件。软件生存周期1、软件定义问题定义…

在学Python前学Linux,Python原来这么好学-1.2节: 在Linux中安装python

这里将告诉您Python原来这么好学-1.2节: 在Linux中安装python,具体操作过程:在Linux系统的主要发行版中&#xff0c;按其软件包格式来进行划分&#xff0c;可分为Deb系以及RPM系操作系统。Linux系统与Windows系统有一个很重要的区别&#xff0c;Linux系统完全免费&#xff0c;开…

python金融大数据分析视频_Python金融大数据分析 PDF 全书超清版

给大家带来的一篇关于Python相关的电子书资源&#xff0c;介绍了关于Python金融、大数据分析方面的内容&#xff0c;本书是由人民邮电出版社出版&#xff0c;格式为PDF&#xff0c;资源大小47.8 MB&#xff0c;希尔皮斯科编写&#xff0c;目前豆瓣、亚马逊、当当、京东等电子书…

kaggle房价预测特征意思_机器学习-kaggle泰坦尼克生存预测(一)-数据清洗与特征构建...

1、背景&#xff1a;1.1 关于kaggle&#xff1a;谷歌旗下的 Kaggle 是一个数据建模和数据分析竞赛平台。该平台是当下最流行的数据科研赛事平台&#xff0c;其组织的赛事受到全球数据科学爱好者追捧。 如果学生能够在该平台的一些比赛中获得较好的名次&#xff0c;不仅可以赢得…

linux docker安装svn,使用docker镜像搭建svn+Apache环境

环境准备虚拟机装好之后&#xff0c;按照官网步骤检查虚拟机内核版本&#xff0c;必须在3.10以上版本&#xff0c;故此处安装redhat_7.2# uname -r3.10.0-327.el7.x86_64安装docker&#xff1a;yum install docker-io有依赖是直接安装具体的依赖软件&#xff0c;解决依赖docker…

springboot 设置ico_Spring Boot--Thymeleaf模板引擎/静态页面

点关注&#xff0c;不迷路&#xff1b;持续更新Java相关技术及资讯&#xff01;&#xff01;&#xff01;1.Spring Boot对静态资源的映射规则如果静态资源文件夹下有 index.html的话,直接访问localhost:8080的话,index就是欢迎页使用自己的图标:在静态资源文件夹放一个 favicon…

linux shell 豆瓣,用Linux shell脚本爬取豆瓣邮箱

前两天总结一下邮箱格式的正则表达式&#xff0c;写了一个脚本来判断输入的邮箱地址是否符合邮箱的格式(有兴趣的朋友可以翻一下我的博客去看一下)。在网上找资料的时候&#xff0c;发现基本都是用Python和Java来做爬虫&#xff0c;当然Python的居多。本着学习的心态&#xff0…

php 获取header_php 输出404状态码

今天在做一个php数据提交的小功能时&#xff0c;需要在判断一个值是如果为空时&#xff0c;就让后台的逻辑页面返回 404 状态码&#xff0c;提示用户页面不存在。那么接下来&#xff0c;飞鸟慕鱼博客要说的是 php 如何返回或输出 html 404 的状态码。php header()函数header()&…

getcwd和pwd为什么不一样_农村医保,为什么每个地区收费不一样?

新农村合作医疗保险的缴费标准&#xff0c;为什么每个地区都不一样呢&#xff1f;我们可能不难发现&#xff0c;就是说你在的地区每年交费可能是280元&#xff0c;但是别的人在的地区可能交费达到了306元或者说320元&#xff0c;这究竟是一种什么样的情况呢&#xff1f;其实每个…

矩阵论思维导图_《实变函数论》 江泽坚 3rd 思维导图与笔记整理

实变函数学十遍实变函数应该是你们本科所有数学课程中最难的了 ————韦老师如是说学期初就知道这个课不好学。话不多说&#xff0c;期末之前把复习导图全部做完了&#xff0c;po上来分享。注&#xff1a;由于制作辛苦&#xff0c;所以预先告知收取些许费用&#xff08;不到一…

jackson 读取多文件_Spring Boot系列之读取配置

使用SpringBoot框架开发&#xff0c;读取配置是少不了的&#xff0c;那么你会读取配置吗&#xff1f;你会写配置吗&#xff1f;List&#xff1f;Map&#xff1f;1 目的本节我们要解决如下几个问题&#xff1a;如何使用Spring Boot读取配置文件&#xff1f;有哪些方式&#xff1…

ab plc编程软件_AB编程软件及所有组态软件授权及安装教程包含FTViewV11

前面发了几个求助的帖子&#xff0c;希望有朋友能提供些Factory Talk View V11的安装和授权&#xff0c;但是一直没有什么回复&#xff0c;今天结合别人的经验&#xff0c;算是把授权安装搞定了&#xff0c;在这里发布出来&#xff0c;希望能帮助到更多的朋友&#xff0c;授权和…

c++ udp多线程 例子_[内附完整源码和文档] 基于udp实现tcp功能进行大文件传输

一.项目要求Please choose one of following programing languages: C, C, Java, Python;本项目采用的是python3.6LFTP should use a client-server service model;本项目使用客户端-服务器的模式LFTP must include a client side program and a server side program; Client s…

C语言中 1%3,算术什么意思啊 算数什么意思

算术什么意思啊 算数什么意思以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;算术是什么意思数学什么是算术和算术和是正数的和&#xff0c;即绝对值的和&#xff0c;例如213.57&#xff0c;…

python 消息框但不影响程序执行_还在用print()查找错误?日志消息不香嘛?| 原力计划...

作者 | 灰小猿责编 | 王晓曼出品 | CSDN博客最近在做项目开发的时候&#xff0c;跟小伙伴聊到修 Bug 这件事。嗯&#xff0c;对于一只没技术的程序猿来说&#xff0c;修 Bug 的确是一件让人头疼的事情&#xff0c;尤其是对于比较大型的项目开发&#xff0c;在变量较多的时候&am…