получить содержимое текстового файла с помощью python. и вопрос о синтаксисе matplotlib

#python #algorithm #matplotlib #text

#python #алгоритм #matplotlib #текст

Вопрос:

вопрос вводит в заблуждение, поэтому я его отредактировал

Комментарии:

1. Пожалуйста, отправьте второй вопрос как отдельный вопрос. Кроме того, вы можете взглянуть на networkx

2. Вы действительно должны ограничивать его одним вопросом на сообщение. Я также повторяю, что networkx — это правильный путь. Похоже, вы имеете дело с проблемой XY . Если вы вместо этого отредактируете свой вопрос, чтобы задать «У меня есть эти вершины и ребра, как мне отобразить последнее изображение», это будет улучшением. Предполагая, что это ваша фактическая цель.

3. спасибо за ваш совет, я отредактировал второй вопрос

Ответ №1:

Это не построение графика, как вы могли бы подумать. Вы в основном отслеживаете линию от одной координаты к следующей. Что вы на самом деле хотите сделать, это создать несколько отрезков между каждой из ваших вершин, как определено вашими ребрами.

 import matplotlib.pyplot as plt
from matplotlib import collections  as mc

def create_vertices_text(coord,i):
    return ax.text(coord[0],coord[1], 'V' str(i))

data = []
with open('vertices.txt') as f:
    lines = f.readlines()
    for line in lines:
        data.append([int(elem) for elem in line.strip().split(',')])

edges = []
vertices = []

for row in data[1:]:
    if len(row) > 2:
        edges.append(row)
    if len(row) == 2:
        vertices.append(row)

x_cor = [elem[0] for elem in vertices]
y_cor = [elem[1] for elem in vertices]

mylines = [(vertices[edge[0]], vertices[edge[1]]) for edge in edges]

lc = mc.LineCollection(mylines, colors=['k']*len(mylines), linewidths=2)
fig, ax = plt.subplots()
ax.add_collection(lc)
for i in range(len(vertices)):
     create_vertices_text(vertices[i],i)
ax.autoscale()
ax.margins(0.1)
plt.show()
 

Комментарии:

1. Обратите внимание, что я на самом деле не использую переменные x_cor или y_cor. Вы могли бы удалить их. Это отвечало на часть вашего вопроса о том, как получить список x_coordinates и y_coordinates.