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绘制
直线和点的图形构造
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()
找不到kiwisolver模块,直接删除\Python\Lib\site-packages路径中的kiwisolver模块文件后,重新安装matplotlib,安装过程中会跳过已经安装的模块。