Моя проблема заключается в следующем: учитывая список допустимых цветов {1, 2, 3, 4}, граф в качестве списка смежности и раскраску стратегия (т. е. последовательность, которой необходимо следовать для раскраски вершин без смежной вершины того же цвета), что и для ввода.
Как правильно реализовать мою функцию, чтобы отобразить соответствующую последовательность раскраски, имеющую файлы "sample.png" в качестве выходных данных. Последний покажет график со всеми назначенными цветами.
Пример:
Ввод:
График списка смежности (.txt)
1 2
1 3
2 4
3 4
- Colors_allow = [1: оранжевый, 2: синий, 3: зеленый, 4: красный]
Стратегия (.txt)
[1, 1]
[2, 2]
[3, 2]
[4, 1]
где [[node, color] ...] - формат.
Ожидаемый результат:
Последовательности окраски клоз
Код до сих пор
import matplotlib.pyplot as plt
import networkx as nx
def load_graph(name):
"""
Returns the graph from an adj. list as G
"""
with open('graphs/'+str(name)+'.txt','rb') as f:
G = nx.read_edgelist(f,nodetype=int,data=(('weight',int),))
return G
def coloring_layout(graph, strategy):
"""
Returns a coloring class as a sequences of images .png
"""
colors_allowed = {1: '#eb984e', 2: '#5dade2', 3: '#58d68d', 4:'#ec7063'}
print(colors_allowed)
color = colors_allowed[2]
for node in graph.nodelist():
SOMETHING
pos = nx.planar_layout(graph) # Chrobak-payne straight line drawing
nx.draw(graph, pos, node_color=color, with_labels=True)
plt.show()
name = input("\n>> ")
graph = load_graph(name)