def plot(self): x = list([]) y = list([]) plots = list([]) arrow_plots = list([]) arrow_labels = list([]) # Iterate over vertices, retrieving x and y coordinates for vertex in self.vertices: x.append(vertex.x) y.append(vertex.y) # Plot the vertices vertex_plot = plt.scatter(x, y, label="Vertices") plots.append(vertex_plot) # Plot the edges for vertex in self.vertices: for adjacent_vertex in vertex.adjacent_vertices: arrow_label = "Edge {}->{}".format(vertex.vertex_id, adjacent_vertex.vertex_id) arrow_plot = plt.arrow(vertex.x, vertex.y, adjacent_vertex.x-vertex.x, adjacent_vertex.y-vertex.y, head_width=1, head_length=1, color='#{}{}{}'.format(Math.color_quantization(vertex.vertex_id, len(self.vertices)), str(hex(int(random.uniform(0.2, 1)*256)))[2:], Math.color_quantization(adjacent_vertex.vertex_id, len(self.vertices))), label=arrow_label) plots.append(arrow_plot) arrow_plots.append(arrow_plot) arrow_labels.append(arrow_label) # Show the graph with a legend plt.legend(arrow_plots, arrow_labels, loc=2, fontsize='small') plt.show()
def plot_route(self, route_order): x = list([]) y = list([]) plots = list([]) arrow_plots = list([]) arrow_labels = list([]) # Iterate over vertices, retrieving x and y coordinates for vertex in self.vertices: x.append(vertex.x) y.append(vertex.y) # Plot the vertices vertex_plot = plt.scatter(x,y, label="Vertices") plots.append(vertex_plot) # Plot the route for vertex_index in range(len(route_order)-1): arrow_label = "Edge {}->{}".format(route_order[vertex_index], route_order[vertex_index+1]) arrow_plot = plt.arrow(self.vertices[route_order[vertex_index]-1].x, self.vertices[route_order[vertex_index]-1].y, self.vertices[route_order[vertex_index+1]-1].x - self.vertices[route_order[vertex_index]-1].x, self.vertices[route_order[vertex_index+1]-1].y - self.vertices[route_order[vertex_index]-1].y, head_width=1, head_length=1, color='#{}{}{}'.format(Math.color_quantization( self.vertices[route_order[vertex_index]-1].vertex_id, len(self.vertices)), str(hex(int(random.uniform(0.2, 1)*256)))[2:], Math.color_quantization(self.vertices[route_order[vertex_index+1]-1].vertex_id, len(self.vertices))), label=arrow_label) arrow_labels.append(arrow_label) arrow_plots.append(arrow_plot) # Show the graph with a legend plt.legend(arrow_plots, arrow_labels, loc=2, fontsize='small') plt.show()
def plot(self): x = list([]) y = list([]) plots = list([]) arrow_plots = list([]) arrow_labels = list([]) # Iterate over vertices, retrieving x and y coordinates for vertex in self.vertices: x.append(vertex.x) y.append(vertex.y) # Plot the vertices vertex_plot = plt.scatter(x, y, label="Vertices") plots.append(vertex_plot) # Plot the route for edge in self.edges: vertex = edge.vertices[0] adjacent_vertex = edge.vertices[1] arrow_label = "Edge {}->{}".format(vertex.vertex_id, adjacent_vertex.vertex_id) arrow_plot = plt.arrow(vertex.x, vertex.y, adjacent_vertex.x-vertex.x, adjacent_vertex.y-vertex.y, head_width=1, head_length=1, color='#{}{}{}'.format(Math.color_quantization(vertex.vertex_id, len(self.vertices)), Math.color_quantization(vertex.vertex_id % adjacent_vertex.vertex_id + 1, len(self.vertices)), Math.color_quantization(adjacent_vertex.vertex_id, len(self.vertices))), label=arrow_label) arrow_labels.append(arrow_label) arrow_plots.append(arrow_plot) # Show the graph with a legend plt.legend(arrow_plots, arrow_labels, loc=2, fontsize='small') plt.show()