Drawing a huge graph with networkX and matplotlibMatplotlib savefig() на увеличенной в графе
Я по существу reasking связанный вопрос. Думаю, я могу лучше объяснить вопрос. С помощью mathplotlib.show(), вызываемого на большом графике, по умолчанию используется уменьшенный, сгруппированный выход. Мой желаемый конечный пользователь должен использовать mathplotlib.savefig(), чтобы сохранить график для использования в отчете. Однако выход savefig() слишком сильно уменьшен, слишком общий. Изменение размера изображения или dpi не устраняет это. Только уменьшает изображение увеличенного изображения. Есть ли способ увеличить масштаб графика и сохранить его без использования пользовательского интерфейса? С пользовательским интерфейсом я могу увеличивать масштаб, распространять узлы и центрировать вокруг рассматриваемого узла, но я не знаю, как это сделать автоматически.
Соответствующий код:
nx.draw(G,pos,node_color=colorvalues, with_labels = False,node_size=values)
fig.set_size_inches(11,8.5)
if show ==0:
plt.show()
if show ==1:
plt.savefig(name+" coremem.png",bbox_inches=0,orientation='landscape',pad_inches=0.1)
Спасибо. Такая простая команда, глупо, я ее не замечал. В настоящее время я пытаюсь найти математический способ автоматического определения центральной массы сети и увеличения к ней. Например, у меня есть списки для значений x и yvalues соответственно для узлов. Я сделал ax.set_xlim (min (xval) -. 25, max (xval) +. 25), и тот же для yvalues. .25 - хороший буфер. Моя проблема заключается в том, что на большом графике в spring_layout два узла, которые связаны друг с другом, но не связаны с остальными, будут настолько далеки, что он разрушит мой алгоритм ... Я буду работать над этим ... – Brad
Вместо этого центра масс, вы можете использовать медиану «x» и «y» позиций узлов, заданных 'pos'. Я добавил код выше, чтобы показать, что я имею в виду. – unutbu