Чтение узлов с атрибутом pos из файла в networkx

Я новичок в Networkx. У меня есть файл, содержащий позицию узлов в следующем формате

0 : 23.23 12.23

где 0 – узел, 23.23 и 12.23 – координаты X и Y соответственно. Кто-нибудь знает, как читать узлы с атрибутом pos , используя функцию, например read_edgelist(...) или аналогичную работу?

благодаря

One Solution collect form web for “Чтение узлов с атрибутом pos из файла в networkx”

С read_edgelist вы предполагаете, что у вас уже есть список краев. Однако то, что вы предоставили, – это свойство node +.

Поскольку вы начинаете с файла, который имеет формат файла (указано в ваших комментариях), первая проблема заключается в том, чтобы получить его в формате, который будет легко обрабатываться. По этой причине я предложил формат файла CSV. Чтобы сделать это с вашим файлом, я запустил терминал (Linux и Mac), cd в каталог с вашими файлами и выполнил следующие две команды:

 sed -n 's/ : /,/gpw nodes_replaced1.txt' nodes.txt 

Это считывает nodes.txt (или ваш файл), заменяет все вхождения : (включая пробелы) на, и сохраняет его как nodes_replaced1.txt . Вы можете изменить имена файлов по своему желанию.

Как только это будет сделано, запустите следующую команду в терминале

 sed -n 's/ /,/gwp nodes.csv' nodes_replaced1.txt 

Это будет делать аналогичная вещь, за исключением чтения в nodes_replaced1.txt, заменить [spaces] на, и записать его как файл CSV.

Если у вас есть файл CSV, я бы предложил использовать Pandas для открытия CSV-файла и сделать следующее, чтобы добавить узлы в ваш график:

 In [1]: import pandas as pd In [2]: import networkx as nx In [5]: nodes = pd.read_csv('nodes.csv', header=None) In [6]: nodes Out[6]: 0 1 2 0 0 52.88 52.53 1 1 56.63 49.53 2 2 38.60 69.81 3 3 43.00 2.88 In [7]: G = nx.Graph() In [8]: G Out[8]: <networkx.classes.graph.Graph at 0x105e94cd0> In [9]: for row in nodes.iterrows(): ...: G.add_node(row[1][0], x=row[1][1], y=row[1][2]) ...: In [10]: G.nodes(data=True) Out[10]: [(0.0, {'x': 52.880000000000003, 'y': 52.530000000000001}), (1.0, {'x': 56.630000000000003, 'y': 49.530000000000001}), (2.0, {'x': 38.600000000000001, 'y': 69.810000000000002}), (3.0, {'x': 43.0, 'y': 2.8799999999999999})] 

Вы заметите, что когда я вызываю только G.nodes() , данных позиции x & y нет. Однако, когда я вызываю G.nodes(data=True) , данные позиции x и y включаются.

Для получения дополнительной информации о том, как создать граф и как добавить атрибуты, связанные с любым узлом, краем или графиком, см. На этой странице: http://networkx.github.io/documentation/latest/tutorial/tutorial. HTML # узлы

Наконец, если @Aric когда-либо появляется, чтобы ответить на этот вопрос, пожалуйста, поправьте меня, если я ошибаюсь!

  • Возможно ли установить координату на улицу в OSMnx?
  • Как изменить диаграмму networkx в Python?
  • Networkx Multigraph from_pandas_dataframe
  • Создание графика с определенным распределением степени?
  • не удалось загрузить простой csv в networkx в Python
  • Как найти круговые отношения в графике с Python и Networkx?
  • networkx - изменить размер узла на основе значения списка или словаря
  • сети со случайным распределением веса по степенному закону
  •  
    Interesting Posts for Van-Lav

    ImportError: нет модуля с именем mock

    Количество вхождений подстроки в строке

    Оптимизация производительности для подключения данных в моделях django

    Как мне исправить этот sqlalchemy.exc.NoForeignKeysError?

    Захват исключений в шаблонах django

    Эффективно получить индексы гистограмм в Python

    selenium.common.exceptions.WebDriverException: Сообщение: не удается загрузить профиль

    Как ссылаться на страницу, содержащую скобки в SPARQL

    Как я могу вызвать скрипт python из сценария python

    Как переопределить stderr out и stdout на отдельные журналы?

    Как установить таймаут для отправки электронной почты с помощью django?

    django, fastcgi: как управлять длительным процессом?

    Как получить подробную информацию о устройстве / разделе из пути к файлу в Linux (например, UUID, серийный номер жесткого диска и т. Д.)

    В чем преимущество использования выражения «with .. as» в Python?

    pandas groupby, не превращаясь в столбцы в индекс

    Python - лучший язык программирования в мире.