我有以下csv文件(以下是示例),我想使用python生成站点地图:
title,url,id,parentid
'首页','www.example.com','1111','0000' 'FirstPage','www.example.com/firstpage'、'2222'、'1111' “第二页”,“ www.example.com/secondpage”,“ 3333”,“ 1111”
我认为最适合树状图。存在一对多关系。一个站点可以有多个子站点,但只能属于一个站点。我正在寻找一个简单的python库来实现这一目标,因为我对图形的经验不是很丰富。
答案 0 :(得分:1)
假设您有以下CSV文件:
title,url,id,parentid
主页,www.example.com,1111,0000
FirstPage,www.example.com / firstpage,2222,1111
SecondPage,www.example.com / secondpage,3333,1111
针对CSV文件运行此脚本:
RUN echo "ipv6" >> /etc/modules
您会得到:
答案 1 :(得分:1)
在树旁边,可以使用python图形模块 networkx 对其进行描述。
import matplotlib.pyplot as plt
import networkx as nx
import csv
G=nx.DiGraph()
lables = {}
edge=[]
with open('test.csv') as f:
reader = csv.reader(f)
next(reader) # skip the first line in the input file
for i,row in enumerate(reader):
print(row)
lables[row[2]] = row[0]
if i!= 0:
edge.append((row[2],row[3]))
G.add_edges_from(edge)
# positions for all nodes
pos = nx.spring_layout(G)
# nodes
nx.draw_networkx_nodes(G, pos,node_size=1000)
# edges
nx.draw_networkx_edges(G, pos, with_labels = False ,width=6)
# labels
nx.draw_networkx_labels(G, pos,lables,font_size=16)
plt.axis('off')
plt.show()