def draw_force_field(x_list, y_list, width, height): from pprint import pprint '''docstring for draw_force_field''' log.info("draw_force_field is working...") X = [] Y = [] for row in range(0, height): one_row_x = [] one_row_y = [] for col in range(0, width): i = row * width + col one_row_x.append(x_list[i]) one_row_y.append(y_list[i]) X.append(one_row_x) Y.append(one_row_y) #X.insert(0, one_row_x) #Y.insert(0, one_row_y) Q = plt.quiver(X, Y) plt.quiverkey(Q, 0.5, 0.92, 2, r'') #l,r,b,t = plt.axis() #dx, dy = r-l, t-b ##axis([l-0.05*dx, r+0.05*dx, b-0.05*dy, t+0.05*dy]) #plt.xticks(range(0,width +3)) #plt.yticks(range(0,height + 3)) plt.title('Attraction Force field') plt.savefig("pixel.jpg") plt.show() return 0
def graph_info(self): '''docstring for graph_info''' self.e_types = ["Link"] self.n_types = ["Node", "Link"] edges_info = defaultdict(int) nodes_info = defaultdict(set) for e_type in self.valid_edge_types: links = self._get_edges(e_type) for link in links: nodes = self._nodes_from_edge(link) if len(nodes) > 0: if self.valid_edge(link, nodes): #edges_info[link.type_name].add(link.name) edges_info[link.type_name] += 1 for i, node in enumerate(nodes): if is_a(node.type_name, "Node"): nodes_info[node.type_name].add(node.name) log.info("*******************************edges:") for type_name, num in edges_info.iteritems(): log.info(type_name + ": " + str(num)) #pprint(edges) log.info("*******************************nodes:") for type_name, nodes in nodes_info.iteritems(): log.info(str(len(nodes)), type_name)
def draw_vectors(x_list, y_list): '''docstring for force_with_spatial()''' def x_domain(y_list): return range(1, len(y_list) + 1) log.info("draw_vectors_2D is working...") strengths = [] angles = [] yticks = range(0, 15) yticks += [100, 200, 300] max_ = 0 i = 0 plt.subplot(211) for x, y in zip(x_list, y_list): i += 1 t = math.sqrt(x**2 + y**2) strengths.append(t) if t > max_: max_ = t # draw direction plt.quiver(i, t, x, y) angles.append(angle_vector(x, y)) log.info(strengths, "force strengths:") X = range(1, len(strengths) + 1) circle = mpath.Path.unit_circle() verts = np.concatenate([circle.vertices[::-1, ...]]) codes = np.concatenate([circle.codes]) circle_path = mpath.Path(verts, codes) plt.plot(X, strengths, '--r', marker=circle_path, markersize=5) #plt.axis([0, len(x_list) + 3, 0, len(x_list) + 3]) plt.xticks(range(0, len(x_list) + 3)) #plt.yticks(yticks) plt.xlabel("spatial distance") plt.ylabel("force strength") plt.subplot(212) discrete_differential(angles) X = x_domain(angles) plt.plot(X, angles, '--r', marker=circle_path, markersize=5) #plt.axis([0, len(X) + 3, 0, len(X) + 3]) plt.xticks(range(0, len(X) + 3)) plt.xlabel("spatial distance") plt.ylabel("direction change ratio") plt.show() plt.savefig("one_pixel.jpg") return 0