Pytanie Rysowanie dużego wykresu za pomocą networkX i matplotlib


Rysuję wykres z około 5K węzłów w nim za pomocą networkX i matplotlib. Okno GTK po matplotlib ma narzędzia do powiększania i wizualizacji wykresu. Czy jest jakiś sposób, mogę zapisać powiększoną wersję do właściwej wizualizacji później?

import matplotlib.pyplot as plt
import networkx as nx

pos=nx.spring_layout(G)   #G is my graph

nx.draw(G,pos,node_color='#A0CBE2',edge_color='#BB0000',width=2,edge_cmap=plt.cm.Blues,with_labels=True)
#plt.show()
plt.savefig("graph.png", dpi=500, facecolor='w', edgecolor='w',orientation='portrait', papertype=None, format=None,transparent=False, bbox_inches=None, pad_inches=0.1) 

16
2018-02-22 20:15


pochodzenie


Powinien być również przycisk zapisu .... lub przynajmniej jestem pewien, że jeden z front-endów ma to (może Qt's?) ... - dsign
tak, jest przycisk zapisu. Ale gdy powiększysz część diagramu i zapiszesz ją, zapisujesz tylko bieżący obszar wyświetlania. Chcę zobaczyć cały wykres. - Nihar Sarangi
Nie możesz po prostu wstać dpi więc więcej szczegółów jest zapisanych w obrazie? - Hooked
@ Jonathon Reinhart Wygląda dobrze. Ten import zwykle zakłada się;) - tacaswell
@tcaswell Pomyślałem, po prostu nie użyłem żadnej z tych bibliotek i chciałem się upewnić. Przy okazji, networkx ... wow! W każdym razie, usunę teraz mój bezsensowny komentarz. - Jonathon Reinhart


Odpowiedzi:


Masz dwie proste opcje:

Up DPI

plt.savefig("graph.png", dpi=1000)

(większy rozmiar pliku obrazu)

Zapisz jako plik PDF

plt.savefig("graph.pdf")

Jest to najlepsza opcja, ponieważ końcowy wykres nie jest rasteryzowany. Teoretycznie powinieneś być w stanie powiększać w nieskończoność.


25
2018-02-23 02:41



@NiharSarangi Czuję, że to pytanie "zapisz powiększoną wersję, aby później poprawnie wizualizować" zostało odebrane. Jeśli obraz jest brudny i chcesz go dostosować networkx to może być pasza dla innego pytania. Spróbuj wyłączyć etykiety with_labels=True -> with_labels=False w poleceniu narysowania, aby je wyczyścić. - Hooked


Chociaż nie jesteś w GTK, możesz chcieć sprawdzić Przeglądarka NetworkX.


1
2017-07-05 17:34