Как увеличить расстояние между метками, чтобы избежать наложения меток в графе networkx - PullRequest
0 голосов
/ 22 сентября 2019

Я хочу построить график, на котором существует один узел для каждого документа, а затем другие узлы для каждого слова в нем.Таким образом, я хочу визуализировать слова, встречающиеся в нескольких документах.

К сожалению, метки для узлов пересекаются, поэтому они не очень часто читаются.

Я попытался увеличитьи уменьшите переменную k, но это не очень помогает.

Я заметил, что график меняется, если его снова построить, и иногда метки становятся более читабельными, но это не очень полезно, потому что у меня есть несколько гораздо больших графиковгде я должен убедиться, что он работает, и не полагаться на перерисовку целиком.

import networkx as nx
import matplotlib.pylab as plt
sentences = []
sentences.append("Jonathan likes to eat sweet cinnamon chocolate waffles.")
sentences.append("Jonathan also knows a really good recipe for baking cinnamon chocolate waffles.")
sentences.append("Some people prefer to eat savory waffles, especially if made by Jonathan.")
sentences.append("And some people do not like savory waffles at all.")

B=nx.from_dict_of_lists({0:[x for x in sentences[0].split()],1:[x for x in sentences[1].split()],2:[x for x in sentences[2].split()],
                         3:[x for x in sentences[3].split()]})

class_color=['blue','red','yellow','green']
node_color_array = []
nodesize = []

for node in B.nodes:
    set_nodesize=50
    color_to_add='white'
    for x in range(4):
        if(x==node):
            set_nodesize=200
            color_to_add =class_color[node]
    node_color_array.append(color_to_add)
    nodesize.append(set_nodesize)

plt.figure(5,figsize=(6,6), dpi=150, facecolor='w')

nx.draw(B,with_labels=True,node_color=node_color_array,node_size=nodesize,edge_color='grey')
plt.savefig('ExampleGraph.png')

Построенный график выглядит так:

https://i.imgur.com/a9qR22z.png

Есть ли способ избежать наложения ярлыков?

...