0
저는 파이썬과 Graphviz를 사용하여 노드로 구성된 일부 클러스터 그래프를 그립니다. 노드에 각기 다른 색 (속성, 예를 들어 각 노드의 x 좌표에 따라 다름)을 지정하려고합니다.Graphviz의 노드에 색상을 자동으로 할당합니다.
는 여기 그래프를
def add_nodes(graph, nodes):
for n in nodes:
if isinstance(n, tuple):
graph.node(n[0], **n[1])
else:
graph.node(n)
return graph
A = [[517, 1, [409], 10, 6],
[534, 1, [584], 10, 12],
[614, 1, [247], 11, 5],
[679, 1, [228], 13, 7],
[778, 1, [13], 14, 14]]
nodesgv = []
for node in A:
nodesgv.append((str(node[0]),{'label': str(node[0]), 'color': ???, 'style': 'filled'}))
graph = functools.partial(gv.Graph, format='svg', engine='neato')
add_nodes(graph(), nodesgv).render(('img/test'))
을 생산 그리고 지금은 각 노드의 첫 번째 값의 순서로 각 노드에 색상을 할당 할 방법입니다. 내가 원하는 것은 빨간색 노드 (517), 노란색 노드 (534), 녹색 노드 (614), 파란색 노드 (679) 및 자주색 노드 (778)입니다.
나는 그래프에 색상을 지정하는 방법을 알고 있지만, 내가 찾고 모자하기 matplotlib를 사용할 때 C = X 일부 비슷한입니다. 문제는 노드 (클러스터)의 수를 미리 알 수 없기 때문에 예를 들어 노드가 7 개인 경우 7 개의 노드가있는 그래프가 빨간색에서 시작하여 자주색으로 끝나기를 원합니다.plt.scatter(x, y, c=x, s=node_sizes)
그래프 비트에는 어떤 속성이 있습니까? 또는 matplotlib의 색상 맵이 어떻게 작동하는지 알려 줄 수 있습니까?
불명의 점 죄송합니다. T^T
grahpviz의 반환 값을 캡쳐 한 다음 'set_array','set_norm','set_cmap' 등을 호출하여 사용할 수 있습니다. – tacaswell
그래프 작성 방법은? 노드에 대한 색상 할당이나 색상 할당 시퀀스 만 보입니까? –
@Ohad Eytan 나는이 기사를 편집했다. Sry for unclear – Chu