Форум сайта python.su
Здравствуйте!
Требуется написать программу которая будет выводить неориентированный граф(вывод должен быть графический), каждый элемент будет выглядеть как фотография-имя, которые хранятся в файле .txt (имя и id) картинка хранится на жестком диске.
В долгу не останусь - готов заплатить, сделать надо в ближайшие дни!!
Выглядеть должен как то так:
Все друзья будут от одного пользователя и между ними расставить связи случайным образом
Отредактировано venom66 (Май 21, 2012 20:30:04)
Прикреплённый файлы:
граф.jpg (129,1 KБ)
Офлайн
Как вариант перепилить код с хабра:
# для каждого пользователя проверяем список друзей print 'Parsing for user: %s' %user.dl.dt.a.string doc = BeautifulSoup(urlopen(user.dl.dt.a['href'])) page = doc.findAll('a', attrs = {'rel' : 'friend'}) # находим друзей текущего пользователя и добавляем их в граф if page: for friend in page: self.drawer.graph.add_nodes_from((user.dl.dt.a.string, friend.string)) self.drawer.graph.add_edge(user.dl.dt.a.string, friend.string) print "Add edge (%s, %s)"%(user.dl.dt.a.string, friend.string) else: self.drawer.graph.add_node(user.dl.dt.a.string) except URLError:
# -*- coding:utf-8 -*- # draw.py import networkx as nx import matplotlib.pyplot as plt class Drawer(object): def __init__(self, file_name = 'graph.png'): self.graph = nx.Graph() self.file_name = file_name def draw(self): ''' отрисовываем граф с заданными параметрами ''' nx.draw(self.graph,pos=nx.spring_layout(self.graph), node_size=3500, nodecolor='r',edge_color='b', node_shape='o') # устанавливаем размер изображения в дюймах plt.gcf().set_size_inches(100,100) plt.savefig(self.file_name)
Офлайн
гляньте на этот код. правда он для FB, а не для txt… и без фото, но зато красиво)
результат:
Офлайн