Уведомления

Группа в Telegram: @pythonsu

#1 Май 20, 2012 10:38:04

venom66
Зарегистрирован: 2012-05-20
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Граф друзей(требуется очень срочно, за ценой не постою!)

Здравствуйте!
Требуется написать программу которая будет выводить неориентированный граф(вывод должен быть графический), каждый элемент будет выглядеть как фотография-имя, которые хранятся в файле .txt (имя и id) картинка хранится на жестком диске.

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

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

Отредактировано venom66 (Май 21, 2012 20:30:04)

Прикреплённый файлы:
attachment граф.jpg (129,1 KБ)

Офлайн

#2 Май 21, 2012 20:31:45

venom66
Зарегистрирован: 2012-05-20
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Граф друзей(требуется очень срочно, за ценой не постою!)

Как вариант перепилить код с хабра:

# для каждого пользователя проверяем список друзей
                    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)

Офлайн

#3 Май 24, 2012 20:53:37

gisolog
Зарегистрирован: 2012-05-24
Сообщения: 7
Репутация: +  1  -
Профиль   Отправить e-mail  

Граф друзей(требуется очень срочно, за ценой не постою!)

гляньте на этот код. правда он для FB, а не для txt… и без фото, но зато красиво)
результат:

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version