Найти - Пользователи
Полная версия: Граф друзей(требуется очень срочно, за ценой не постою!)
Начало » Центр помощи » Граф друзей(требуется очень срочно, за ценой не постою!)
1
venom66
Здравствуйте!
Требуется написать программу которая будет выводить неориентированный граф(вывод должен быть графический), каждый элемент будет выглядеть как фотография-имя, которые хранятся в файле .txt (имя и id) картинка хранится на жестком диске.

В долгу не останусь - готов заплатить, сделать надо в ближайшие дни!!

Выглядеть должен как то так:
Все друзья будут от одного пользователя и между ними расставить связи случайным образом
venom66
Как вариант перепилить код с хабра:

# для каждого пользователя проверяем список друзей
                    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:
За хранение и отрисовку графа отвечает класс Drawer из модуля draw.py:

# -*- 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)
gisolog
гляньте на этот код. правда он для FB, а не для txt… и без фото, но зато красиво)
результат:
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB