python networkx 根据图的权重画图实现

首先输入边和边的权重,随后画出节点位置,根据权重大小划分实边和虚边

#coding:utf-8
#!/usr/bin/env python
"""
An example using Graph as a weighted network.
"""
__author__ = """Aric Hagberg (hagberg@lanl.gov)"""
try:
  import matplotlib.pyplot as plt
except:
  raise

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.savefig("weighted_graph.png") # save as png
plt.show() # display

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Python利用带权重随机数解决抽奖和游戏爆装备问题

    关于带权随机数 为了帮助理解,先来看三类随机问题的对比: 1.已有n条记录,从中选取m条记录,选取出来的记录前后顺序不管. 实现思路:按行遍历所有记录,约隔n/m条取一个数据即可 2.在1类情况下,还要求选取出来的m条记录是随机排序的 实现思路: 给n条记录,分别增加一列标记,值为随机选取的1至n之间的不重复数据. 3.区别于1,2类问题, 如果记录是有权重的,如何结合权重去随机选取. 比如A的权重为10, B的权重股为5, C的权重为1, 则随机选取4个时可能应该出现AABB. 第3类问题便是

  • python实现K近邻回归,采用等权重和不等权重的方法

    如下所示: from sklearn.datasets import load_boston boston = load_boston() from sklearn.cross_validation import train_test_split import numpy as np; X = boston.data y = boston.target X_train, X_test, y_train, y_test = train_test_split(X, y, random_state =

  • Python实现基于权重的随机数2种方法

    问题: 例如我们要选从不同省份选取一个号码,每个省份的权重不一样,直接选随机数肯定是不行的了,就需要一个模型来解决这个问题. 简化成下面的问题: 字典的key代表是省份,value代表的是权重,我们现在需要一个函数,每次基于权重选择一个省份出来 {"A":2, "B":2, "C":4, "D":10, "E": 20} 解决: 这是能想到和能看到的最多的版本,不知道还没有更高效好用的算法. #!/usr/

  • Python实现获取网站PR及百度权重

    上一次我用requests库写的一个抓取页面中链接的简单代码,延伸一下,我们还可以利用它来获取我们网站的PR以及百度权重.原理差不多.最后我们甚至可以写一个循环批量查询网站的相关信息. 先说说GooglePR,全称PageRank.它是Google官方给出的评定一个网站SEO的评级,这个大家应该不陌生.既然是官方给出的,当然有一个官方的接口去获取它.我们这里就利用官方的接口获取谷歌PR. 复制代码 代码如下: GPR_HASH_SEED ="Mining PageRank is AGAINST

  • 在python带权重的列表中随机取值的方法

    1 random.choice python random模块的choice方法随机选择某个元素 foo = ['a', 'b', 'c', 'd', 'e'] from random import choice print choice(foo) 2 random.sample 使用python random模块的sample函数从列表中随机选择一组元素 list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] slice = random.sample(list, 5)

  • python networkx 根据图的权重画图实现

    首先输入边和边的权重,随后画出节点位置,根据权重大小划分实边和虚边 #coding:utf-8 #!/usr/bin/env python """ An example using Graph as a weighted network. """ __author__ = """Aric Hagberg (hagberg@lanl.gov)""" try: import matplotl

  • Python networkx包的实现

    networkx是Python的一个包,用于构建和操作复杂的图结构,提供分析图的算法.图是由顶点.边和可选的属性构成的数据结构,顶点表示数据,边是由两个顶点唯一确定的,表示两个顶点之间的关系.顶点和边也可以拥有更多的属性,以存储更多的信息. 对于networkx创建的无向图,允许一条边的两个顶点是相同的,即允许出现自循环,但是不允许两个顶点之间存在多条边,即出现平行边.边和顶点都可以有自定义的属性,属性称作边和顶点的数据,每一个属性都是一个Key:Value对. 一,创建图 在创建图之前,需要导

  • Python实现平行坐标图的两种方法小结

    平行坐标图,一种数据可视化的方式.以多个垂直平行的坐标轴表示多个维度,以维度上的刻度表示在该属性上对应值,相连而得的一个折线表示一个样本,以不同颜色区分类别. 但是很可惜,才疏学浅,没办法在Python里实现不同颜色来区分不同的类别.如果对此比较在意的大神可以不要往下看了......... 上图是一个基于iris数据集所画的一个平行坐标图. 隔开隔开.......................................隔开隔开 不多扯了,下面正式上代码 方法一.基于pyecharts第三

  • 在pycharm中显示python画的图方法

    问题描述 在电脑中重新安装Anaconda3&PyCharm后,运行原来的程序画图时出现了下图界面. 不能弹出如下图所示的"figure"窗口. 解决方法: 这是因为PyCharm在Sciview中开放它.具体操作步骤如下所示: 1."File->Settings",打开Settings窗口. 2.找到"Python Scientific",去除右边候选框中的勾号. 重新运行后就可以出现"figure"窗口了.

  • python绘制雷达图实例讲解

    在python中,有很多用于生成基于JS的百度开源的数据可视化图表 Echarts 的类库.设置的图样都非常漂亮,小编之前研究过很多图示,用python去抓取数据,然后进行画图,经历这么多得图样,最深有感触的还是关于绘制雷达图,大家应该都遇到过需要用到雷达图的时候吧,那就一起来了解下吧. 安装模块: pip install pyecharts 导入模块: from pyecharts import options as opts 准备数据: 大家可以自行导入数据使用. 绘制雷达图: randar

  • python绘图模块之利用turtle画图

    模块之turtle 小故事 前两天朋友说:"常文啊!听说你会python,那能不能用python画一些好看的图呢?"然后我特意去学了一下turtle模块,现在给大家分享一下. 一.什么是turtle Turtle是python内嵌的绘制线.圆以及其他形状(包括文本)的图形模块. 二.turtle函数的使用 import turtle turtle.pendown() # 放下画笔 turtle.penup() # 抬起画笔 turtle.pensize(int) # 设置画笔宽度,值为

  • python 绘制斜率图进行对比分析

    你好,我是林骥. 斜率图,可以快速展现两组数据之间各维度的变化,特别适合用于对比两个时间点的数据. 比如说,为了对比分析某产品不同功能的用户满意度,经过问卷调查和数据统计,得到下面这个调查结果: 你不妨自己先思考一下,如何对这组数据进行可视化,才能让信息传递变得更加高效? 下面是我用 matplotlib 制作的图表: 从图中可以直观地看出,功能 C 的用户满意度明显下降,我们用比较鲜明的橙色来表示,以便引起观众重点关注:功能 D 和功能 E 的用户满意度明显提升,我们用蓝色表示,代表数据正在向

  • Python超简单容易上手的画图工具库(适合新手)

    前言 今天,在网上发现一款很棒的python画图工具库.很简单的api调用就能生成漂亮的图表.并且可以进行一些互动. pyecharts 是一个用于生成 Echarts 图表的类库.Echarts 是百度开源的一个数据可视化 JS 库.用 Echarts 生成的图可视化效果非常棒.废话不多说下来直接看效果(对于我这种没审美感的人来是我觉得挺漂亮的). 使用之前需要安装一下:安装命令很简单:Pip就可以安装: 这里我安装在我的虚拟环境中了:pip install pyecharts . 官方的文档

  • Python超简单容易上手的画图工具库推荐

    今天,在网上发现一款很棒的python画图工具库.很简单的api调用就能生成漂亮的图表.并且可以进行一些互动. pyecharts 是一个用于生成 Echarts 图表的类库.Echarts 是百度开源的一个数据可视化 JS 库.用 Echarts 生成的图可视化效果非常棒.废话不多说下来直接看效果(对于我这种没审美感的人来是我觉得挺漂亮的). 使用之前需要安装一下:安装命令很简单:Pip就可以安装: 这里我安装在我的虚拟环境中了:pip install pyecharts . 官方的文档和de

  • python 绘制3D图案例分享

    目录 1.散点图 代码 输入的数据格式 2.三维表面 surface 代码 输入的数据格式 scatter + surface图形展示 3. 三维瀑布图waterfall 代码 输入的数据格式 4. 3d wireframe code 输入的数据格式 1.散点图 代码 # This import registers the 3D projection, but is otherwise unused. from mpl_toolkits.mplot3d import Axes3D # noqa:

随机推荐