前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python matplotlib、networkx图论

python matplotlib、networkx图论

作者头像
sofu456
发布2019-07-09 14:15:13
8040
发布2019-07-09 14:15:13
举报
文章被收录于专栏:sofu456sofu456

图论

代码语言:javascript
复制
import networkx as nx
import matplotlib.pyplot as plt
g=nx.Graph()
g.add_edge('s','b')
g.add_edge('v','d')
nx.draw(g,with_labels=True)
plt.show()    #plt窗口,plot绘制
在这里插入图片描述
在这里插入图片描述

直线和点的图形构造

代码语言:javascript
复制
import xml.dom.minidom
import networkx as nx
import matplotlib.pyplot as plt

class Point:
    def __init__(self,x,y,refCount,idx):
        self.y = x
        self.x = y
        self.refCount = refCount
        self.idx = idx
class Line:
    def __init__(self,v0,v1,idx):
        self.v0 = v0
        self.v1 = v1
        self.idx = idx
class Bsp:
    def __init__(self):
        self.Points = []
        self.Lines = []

path = 'd:\\户型数据.xml'
tree = xml.dom.minidom.parse(path)
lines = tree.documentElement.getElementsByTagName('Lines')
points = tree.documentElement.getElementsByTagName('Points')

bspData = Bsp()
for pt in points[0].childNodes:
    if isinstance(pt, xml.dom.minidom.Text):
            continue
    idx = int(pt.getElementsByTagName('RefCount')[0].childNodes[0].data)
    pos = pt.getElementsByTagName('Pos')[0].childNodes[0].data
    posNull = pos.find(' ', 2)
    bspData.Points.append(Point(float(pos[2:posNull]),float(pos[posNull+3:]),idx,points[0].childNodes.index(pt)))
    
for ln in lines[0].childNodes:
    if isinstance(ln, xml.dom.minidom.Text):
            continue
    v0 = int(ln.getElementsByTagName('V0')[0].childNodes[0].data)
    v1 = int(ln.getElementsByTagName('V1')[0].childNodes[0].data)
    bspData.Lines.append(Line(v0,v1,lines[0].childNodes.index(ln)))

g=nx.Graph()
for line in bspData.Lines:
        g.add_node(bspData.Points[line.v0])
        g.add_node(bspData.Points[line.v1])
        g.add_edge(bspData.Points[line.v0], bspData.Points[line.v1])

i = 0
lables,points = {},{}
for p in bspData.Points:
    points[p] = (p.x, p.y)
    lables[p] = i
    i+=1

nx.draw(g,pos=points,labels=lables)
plt.show()
在这里插入图片描述
在这里插入图片描述

import matplotlib.pyplot as plt提示异常

找不到kiwisolver模块,直接删除\Python\Lib\site-packages路径中的kiwisolver模块文件后,重新安装matplotlib,安装过程中会跳过已经安装的模块。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年02月15日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 图论
  • import matplotlib.pyplot as plt提示异常
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档