Συζήτηση
Γεια χαρά, Επισκέπτης
Όνομα χρήστη: Κωδικός: Να με θυμάσαι

ΘΕΜΑ: python graph with input edges and nodes

python graph with input edges and nodes 6 Χρόνια 7 Μήνες πριν #4761

  • alani4837
  • Το Άβαταρ του/της alani4837
  • Αποσυνδεμένος
  • p_____
  • Δημοσιεύσεις: 6
Καλησπερα παιδια,

εχω να φτιαξω εναν γραφο με τον αριθμο των κομβων και των ακμων να εισαγεται απο τον χρηστη. Μηπως μπορει να με βοηθησει καποιος?
import sys
import networkx as nx
import graph
 
 
n = raw_input("Enter the number on nodes: ")
e = raw_input("Enter the number of edges: ")
 
G = nx.Graph()
 
G.add_node(n)
G.add_edge(e,n)
 
 
nx.write_gml(G, "graph.gml")
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

python graph with input edges and nodes 6 Χρόνια 7 Μήνες πριν #4762

  • Theo
  • Το Άβαταρ του/της Theo
  • Αποσυνδεμένος
  • pytho_
  • Δημοσιεύσεις: 249
  • Ληφθείσες Ευχαριστίες 70
networkx.github.io/documentation/network...torial/tutorial.html

Για να βάλεις nodes
G.add_node('node_name')
G.add_nodes_from(iterrable)
Για να βάλεις edges
G.add_edge(pair of nodes)
G.add_edges_from(iterrable of pairs of nodes)

Προσοχή αν βάλεις στο edges στοιχεία που δεν είναι nodes θα τους δημιουργήσει
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Οι ακόλουθοι χρήστες είπαν "Σε Ευχαριστώ": alani4837

python graph with input edges and nodes 6 Χρόνια 7 Μήνες πριν #4763

  • alani4837
  • Το Άβαταρ του/της alani4837
  • Αποσυνδεμένος
  • p_____
  • Δημοσιεύσεις: 6
Ευχαριστω πολυ για την γρηγορη απαντηση σου, απλα δεν καταλαβαινω αφου εχω το raw_input τι να βαλω στο ('node_name') ,(iterrable), (pair of nodes) και (iterrable of pairs of nodes). n, e?
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

python graph with input edges and nodes 6 Χρόνια 7 Μήνες πριν #4764

  • Theo
  • Το Άβαταρ του/της Theo
  • Αποσυνδεμένος
  • pytho_
  • Δημοσιεύσεις: 249
  • Ληφθείσες Ευχαριστίες 70
alani4837 έγραψε:
Ευχαριστω πολυ για την γρηγορη απαντηση σου, απλα δεν καταλαβαινω αφου εχω το raw_input τι να βαλω στο ('node_name') ,(iterrable), (pair of nodes) και (iterrable of pairs of nodes). n, e?

Πρέπει να διαβάσεις το tutorial που σου έστειλα για να καταλάβεις θα σου πάρει περίπου 15 λεπτά. Συνοπτικά
όταν γράφεις
G.add_node(n)
προστίθεται ένα node το n και όχι n nodes
Για να προσθέσεις n nodes πρέπει να κάνεις n φορές
G.add_node(node_name)ή
G.add_nodes_from(iterable) όπου το length του iterable είναι n

όταν γράφεις
G.add_edge(e,n) προστίθεται ένα endge το (e,n) και επειδή το e δεν υπάρχει στα nodes
προστίθεται αυτόματα
οπότε για να προσθέσεις e edges πρέπει να κάνεις e φορές το
G.add_edge(α,β) όπου α, β ανήκουν στα nodes
ή
G.add_edges_from(iterrable_of_pairs) όπου το length του iterrable είναι e
To ξέρω ότι σε μπέρδεψα αλλά θα ξεμπεδευτείς μόλις διαβάσεις το tutorial μόνο την πρώτη σελίδα και αυτή όχι ως το τέλος.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

python graph with input edges and nodes 6 Χρόνια 7 Μήνες πριν #4767

  • Theo
  • Το Άβαταρ του/της Theo
  • Αποσυνδεμένος
  • pytho_
  • Δημοσιεύσεις: 249
  • Ληφθείσες Ευχαριστίες 70
Με την ευκαιρία του θέματος και επειδή θεωρώ ότι τα graphs είναι από τις πιο ωραίες δομές για αναπαράσταση διάφορων πράγματων και για να λύσεις δύσκολα πραγματικά προβλήματα (real life problems)
βάζω εδώ κάποια link που εμένα με έχουν βοήθησει να κάνω μια εισαγωγή στα graphs

interactivepython.org/runestone/static/p.../Graphs/toctree.html
www.python-course.eu/graphs_python.php
www.coursera.org/learn/algorithmic-thinking-1
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

python graph with input edges and nodes 6 Χρόνια 7 Μήνες πριν #4770

  • Theo
  • Το Άβαταρ του/της Theo
  • Αποσυνδεμένος
  • pytho_
  • Δημοσιεύσεις: 249
  • Ληφθείσες Ευχαριστίες 70
Χρειάζεσαι ακόμα βοήθεια ή οκ;
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Οι ακόλουθοι χρήστες είπαν "Σε Ευχαριστώ": alani4837

python graph with input edges and nodes 6 Χρόνια 7 Μήνες πριν #4771

  • alani4837
  • Το Άβαταρ του/της alani4837
  • Αποσυνδεμένος
  • p_____
  • Δημοσιεύσεις: 6
Ευχαριστώ πολυ για τις πληροφορίες αλλα δυστυχώς δεν τα κατάφερα ακομα... Ενώ καταλαβαίνω την έννοια των γραφων δεν μπορω να το αποτυπώσω σωστα...
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

python graph with input edges and nodes 6 Χρόνια 7 Μήνες πριν #4772

  • Theo
  • Το Άβαταρ του/της Theo
  • Αποσυνδεμένος
  • pytho_
  • Δημοσιεύσεις: 249
  • Ληφθείσες Ευχαριστίες 70
Έχεις κάνει graphs εκτός βιβλιοθήκης όπως η networkx; Αν όχι σου προτείνω να κάνεις 1-2 απλά graphs για να καταλάβεις την έννοια καλύτερα. Kαι στις δύο υλοποιήσης adjacency list και adjacency matrix

Εντός networkx τώρα

για να εισάγεις ας πούμε 10 nodes
for i in range(10):
  node = input('Δώσε node : ')
  G.add_node(node)
 

πρέπει όμως να κάνεις και ελέγχους γιατί αν βάλεις 10 φορές το ίδιο node δεν θα σου πετάξει λάθος αλλά στο τέλος θα έχεις 1 node

με τον ιδιο τρόπο έστω θέλεις 5 edges
 
for i in range(5):
  edge=input('δωσε edge').split()
  G.add_edge(*edge)

και εδώ πρέπει να κάνεις πολλούς ελέχους και τα δύο στοιχεία σου στο edge πρέπει να ανήκουν στα nodes αλλίως θα αυξηθεί ο αριθμός των nodes
Θέλεις self loops δηλαδή edge (a, a) ή όχι, και άλλους ελέγχους

επιπρόσθετα πρέπει να λάβεις υπόψη την ιδιαιτερότητα του nx που κάνει υλοποίηση των nodes edges όχι με sets όπως θα έπρεπε αλλά με list και tuples
Τελευταία διόρθωση: 6 Χρόνια 7 Μήνες πριν από Theo.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Οι ακόλουθοι χρήστες είπαν "Σε Ευχαριστώ": alani4837

python graph with input edges and nodes 6 Χρόνια 7 Μήνες πριν #4773

  • alani4837
  • Το Άβαταρ του/της alani4837
  • Αποσυνδεμένος
  • p_____
  • Δημοσιεύσεις: 6
Σε ευχαριστω παρα πολυ, εχεις ασχοληθει αρκετα μαζι μου. Ρο προγραμμα το οποιο θελω να κανω ειναι το εξης:

o θα ζητά από τον χρήστη να πληκτρολογήσει αριθμό κόμβων και ακμών για την δημιουργία ενός γράφου,
o θα παράγει ένα γράφο με αυτά τα στοιχεία (η σύνδεση των ακμών με τους κόμβους μπορεί να είναι τυχαία ή με κάποιο αλγόριθμο),
o θα παράγει το γράφημα του γράφου με ό,τι χαρακτηριστικά επιθυμείτε,
o θα αποθηκεύει τον γράφο σε ένα αρχείο τύπου gml.



Ειναι αρκετα ευκολο σωστα??
Τελευταία διόρθωση: 6 Χρόνια 7 Μήνες πριν από alani4837.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

python graph with input edges and nodes 6 Χρόνια 7 Μήνες πριν #4774

  • Theo
  • Το Άβαταρ του/της Theo
  • Αποσυνδεμένος
  • pytho_
  • Δημοσιεύσεις: 249
  • Ληφθείσες Ευχαριστίες 70
Είναι δύσκολο σχετικά αλλά μπορείς να πας σε κάτι random
import networkx as nx
import matplotlib.pyplot as plt
import os
 
def read_number_of_nodes_and_edges():
    number_of_nodes=int(input('Enter the number of nodes : '))
    number_of_edges=int(input('Enter the number of edges : '))
    return number_of_nodes, number_of_edges
 
def create_graph(nnodes, nedges):
    G=nx.generators.random_graphs.gnm_random_graph(nnodes,nedges)
    return G
 
def draw_graph(g):
    nx.draw_networkx(g)
    print('close the graph to continue')
    plt.show()
 
def save_graph(g,file_name):
    nx.write_gml(g, file_name)
    print ('The graph is saved as {} in {} directory.'.format(file_name, os.getcwd() ))
 
 
def main_graph():
    nnodes, nedges=read_number_of_nodes_and_edges()
    G=create_graph(nnodes, nedges)
    draw_graph(G)
    save_graph(G,'mygraph.gml')
 
τρέχεις την main_graph()

και χωρίς συναρτήσεις σε ένα file
import networkx as nx
import matplotlib.pyplot as plt
import os
 
number_of_nodes=int(input('Enter the number of nodes : '))
number_of_edges=int(input('Enter the number of edges : '))
 
 
G=nx.generators.random_graphs.gnm_random_graph(number_of_nodes,number_of_edges)
 
nx.draw_networkx(G)
print('close the graph to continue')
plt.show()
 
nx.write_gml(G, 'mygraph.gml')
print ('The graph is saved as "mygraph.gml" in {} directory.'.format(os.getcwd() ))
 
Τελευταία διόρθωση: 6 Χρόνια 7 Μήνες πριν από Theo.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Οι ακόλουθοι χρήστες είπαν "Σε Ευχαριστώ": alani4837

python graph with input edges and nodes 6 Χρόνια 6 Μήνες πριν #4778

  • alani4837
  • Το Άβαταρ του/της alani4837
  • Αποσυνδεμένος
  • p_____
  • Δημοσιεύσεις: 6
Φιλε μου σε ευχαριστω πολυ, και με βοηθησες με το προγραμμα μου και με εκανες να καταλαβω τους γραφους.


Να κανω και αλλη μια ερωτηση: Θελω επισης να δινει ο χρηστης ενα node για την δημιουργια ενος ego network και εχω κανει αυτο :
from operator import itemgetter
import networkx as nx
import matplotlib.pyplot as plt
 
 
G= nx.Graph()
G= nx.read_gml('mygraph.gml')
 
print(G.nodes())
print(G.edges())
 
n = G.nodes()
n = int(input("Enter node to create ego network: "))
 
#node_and_degree=G.degree(n)
 
#(largest_hub,degree)=sorted(node_and_degree(n),key=itemgetter(1))[-1]
 
 
hub_ego = nx.ego_graph(G,n)
 
 
pos = nx.spring_layout(hub_ego)
 
nx.draw(hub_ego,pos,node_color='b',with_labels=False)
 
 
nx.draw_networkx_nodes(hub_ego,pos,nodelist=[n],node_size=300,node_color='r')
 
plt.savefig('ego_graph.png')
 
plt.show()
 
 
Τελευταία διόρθωση: 6 Χρόνια 6 Μήνες πριν από alani4837.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Συντονιστές: pmav99
Χρόνος δημιουργίας σελίδας: 0.362 δευτερόλεπτα

Μοιράσου το!

Powered by CoalaWeb

Λίστα Ταχυδρομείου