Python matplotlib.path.Path.LINETO Examples
The following are 30
code examples of matplotlib.path.Path.LINETO().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
matplotlib.path.Path
, or try the search function
.
Example #1
Source File: patches.py From matplotlib-4-abaqus with MIT License | 6 votes |
def _get_bracket(self, x0, y0, cos_t, sin_t, width, length, ): # arrow from x0, y0 to x1, y1 from matplotlib.bezier import get_normal_points x1, y1, x2, y2 = get_normal_points(x0, y0, cos_t, sin_t, width) dx, dy = length * cos_t, length * sin_t vertices_arrow = [(x1 + dx, y1 + dy), (x1, y1), (x2, y2), (x2 + dx, y2 + dy)] codes_arrow = [Path.MOVETO, Path.LINETO, Path.LINETO, Path.LINETO] return vertices_arrow, codes_arrow
Example #2
Source File: inset_locator.py From matplotlib-4-abaqus with MIT License | 6 votes |
def connect_bbox(bbox1, bbox2, loc1, loc2=None): if isinstance(bbox1, Rectangle): transform = bbox1.get_transfrom() bbox1 = Bbox.from_bounds(0, 0, 1, 1) bbox1 = TransformedBbox(bbox1, transform) if isinstance(bbox2, Rectangle): transform = bbox2.get_transform() bbox2 = Bbox.from_bounds(0, 0, 1, 1) bbox2 = TransformedBbox(bbox2, transform) if loc2 is None: loc2 = loc1 x1, y1 = BboxConnector.get_bbox_edge_pos(bbox1, loc1) x2, y2 = BboxConnector.get_bbox_edge_pos(bbox2, loc2) verts = [[x1, y1], [x2,y2]] #Path() codes = [Path.MOVETO, Path.LINETO] return Path(verts, codes)
Example #3
Source File: sankey.py From Computable with MIT License | 6 votes |
def _revert(self, path, first_action=Path.LINETO): """ A path is not simply revertable by path[::-1] since the code specifies an action to take from the **previous** point. """ reverse_path = [] next_code = first_action for code, position in path[::-1]: reverse_path.append((next_code, position)) next_code = code return reverse_path # This might be more efficient, but it fails because 'tuple' object # doesn't support item assignment: #path[1] = path[1][-1:0:-1] #path[1][0] = first_action #path[2] = path[2][::-1] #return path
Example #4
Source File: axisline_style.py From Computable with MIT License | 6 votes |
def _extend_path(self, path, mutation_size=10): """ Extend the path to make a room for drawing arrow. """ from matplotlib.bezier import get_cos_sin x0, y0 = path.vertices[-2] x1, y1 = path.vertices[-1] cost, sint = get_cos_sin(x0, y0, x1, y1) d = mutation_size * 1. x2, y2 = x1 + cost*d, y1+sint*d if path.codes is None: _path = Path(np.concatenate([path.vertices, [[x2, y2]]])) else: _path = Path(np.concatenate([path.vertices, [[x2, y2]]]), np.concatenate([path.codes, [Path.LINETO]])) return _path
Example #5
Source File: PlotMatplot.py From Grid2Op with Mozilla Public License 2.0 | 6 votes |
def _draw_powerline_line(self, pos_or_x, pos_or_y, pos_ex_x, pos_ex_y, color, line_style): codes = [ Path.MOVETO, Path.LINETO ] verts = [ (pos_or_x, pos_or_y), (pos_ex_x, pos_ex_y) ] path = Path(verts, codes) patch = patches.PathPatch(path, color=color, lw=self._line_color_width, ls=line_style) self.ax.add_patch(patch)
Example #6
Source File: inset_locator.py From Computable with MIT License | 6 votes |
def connect_bbox(bbox1, bbox2, loc1, loc2=None): if isinstance(bbox1, Rectangle): transform = bbox1.get_transfrom() bbox1 = Bbox.from_bounds(0, 0, 1, 1) bbox1 = TransformedBbox(bbox1, transform) if isinstance(bbox2, Rectangle): transform = bbox2.get_transform() bbox2 = Bbox.from_bounds(0, 0, 1, 1) bbox2 = TransformedBbox(bbox2, transform) if loc2 is None: loc2 = loc1 x1, y1 = BboxConnector.get_bbox_edge_pos(bbox1, loc1) x2, y2 = BboxConnector.get_bbox_edge_pos(bbox2, loc2) verts = [[x1, y1], [x2,y2]] #Path() codes = [Path.MOVETO, Path.LINETO] return Path(verts, codes)
Example #7
Source File: shapes.py From viznet with MIT License | 6 votes |
def rounded_path(vertices, roundness, close=False): '''make rounded path from vertices.''' vertices = np.asarray(vertices) if roundness == 0: vertices = vertices if not close else np.concatenate([vertices, vertices[:1]],axis=0) return Path(vertices, codes=[Path.MOVETO]+[Path.LINETO]*(len(vertices)-1)) if close: vertices = np.concatenate([vertices, vertices[:2]], axis=0) codes = [Path.MOVETO] vertices_new = [vertices[0]] if close: cur, nex = vertices[:2] vertices_new[0] = cur + (nex - cur)/norm(cur-nex)*roundness for pre, cur, nex in zip(vertices[:-2], vertices[1:-1], vertices[2:]): codes.extend([Path.LINETO, Path.CURVE3, Path.CURVE3]) dv_pre = (pre - cur)/norm(cur-pre)*roundness dv_nex = (nex - cur)/norm(cur-nex)*roundness vertices_new.extend([cur+dv_pre,cur,cur+dv_nex]) if not close: codes.append(Path.LINETO) vertices_new.append(vertices[-1]) return Path(vertices_new, codes)
Example #8
Source File: brush.py From viznet with MIT License | 6 votes |
def rounded_path(vertices, roundness): '''make rounded path from vertices.''' vertices = np.asarray(vertices) if roundness == 0: return Path(vertices) codes = [Path.MOVETO] vertices_new = [vertices[0]] for pre, cur, nex in zip(vertices[:-2], vertices[1:-1], vertices[2:]): codes.extend([Path.LINETO, Path.CURVE3, Path.CURVE3]) dv_pre = (pre - cur)/norm(cur-pre)*roundness dv_nex = (nex - cur)/norm(cur-nex)*roundness vertices_new.extend([cur+dv_pre,cur,cur+dv_nex]) codes.append(Path.LINETO) vertices_new.append(vertices[-1]) return Path(vertices_new, codes)
Example #9
Source File: axisline_style.py From matplotlib-4-abaqus with MIT License | 6 votes |
def _extend_path(self, path, mutation_size=10): """ Extend the path to make a room for drawing arrow. """ from matplotlib.bezier import get_cos_sin x0, y0 = path.vertices[-2] x1, y1 = path.vertices[-1] cost, sint = get_cos_sin(x0, y0, x1, y1) d = mutation_size * 1. x2, y2 = x1 + cost*d, y1+sint*d if path.codes is None: _path = Path(np.concatenate([path.vertices, [[x2, y2]]])) else: _path = Path(np.concatenate([path.vertices, [[x2, y2]]]), np.concatenate([path.codes, [Path.LINETO]])) return _path
Example #10
Source File: backend_cairo.py From Mastering-Elasticsearch-7.0 with MIT License | 6 votes |
def _append_path(ctx, path, transform, clip=None): for points, code in path.iter_segments( transform, remove_nans=True, clip=clip): if code == Path.MOVETO: ctx.move_to(*points) elif code == Path.CLOSEPOLY: ctx.close_path() elif code == Path.LINETO: ctx.line_to(*points) elif code == Path.CURVE3: cur = np.asarray(ctx.get_current_point()) a = points[:2] b = points[-2:] ctx.curve_to(*(cur / 3 + a * 2 / 3), *(a * 2 / 3 + b / 3), *b) elif code == Path.CURVE4: ctx.curve_to(*points)
Example #11
Source File: patches.py From Computable with MIT License | 6 votes |
def transmute(self, path, mutation_size, linewidth): x0, y0, x1, y1, x2, y2 = self.ensure_quadratic_bezier(path) arrow_path = [(x0, y0), (x1, y1), (x2, y2)] b_plus, b_minus = make_wedged_bezier2( arrow_path, self.tail_width * mutation_size / 2., wm=self.shrink_factor) patch_path = [(Path.MOVETO, b_plus[0]), (Path.CURVE3, b_plus[1]), (Path.CURVE3, b_plus[2]), (Path.LINETO, b_minus[2]), (Path.CURVE3, b_minus[1]), (Path.CURVE3, b_minus[0]), (Path.CLOSEPOLY, b_minus[0]), ] path = Path([p for c, p in patch_path], [c for c, p in patch_path]) return path, True
Example #12
Source File: patches.py From Computable with MIT License | 6 votes |
def _get_bracket(self, x0, y0, cos_t, sin_t, width, length, ): # arrow from x0, y0 to x1, y1 from matplotlib.bezier import get_normal_points x1, y1, x2, y2 = get_normal_points(x0, y0, cos_t, sin_t, width) dx, dy = length * cos_t, length * sin_t vertices_arrow = [(x1 + dx, y1 + dy), (x1, y1), (x2, y2), (x2 + dx, y2 + dy)] codes_arrow = [Path.MOVETO, Path.LINETO, Path.LINETO, Path.LINETO] return vertices_arrow, codes_arrow
Example #13
Source File: sankey.py From matplotlib-4-abaqus with MIT License | 6 votes |
def _revert(self, path, first_action=Path.LINETO): """ A path is not simply revertable by path[::-1] since the code specifies an action to take from the **previous** point. """ reverse_path = [] next_code = first_action for code, position in path[::-1]: reverse_path.append((next_code, position)) next_code = code return reverse_path # This might be more efficient, but it fails because 'tuple' object # doesn't support item assignment: #path[1] = path[1][-1:0:-1] #path[1][0] = first_action #path[2] = path[2][::-1] #return path
Example #14
Source File: patches.py From neural-network-animation with MIT License | 6 votes |
def transmute(self, path, mutation_size, linewidth): x0, y0, x1, y1, x2, y2 = self.ensure_quadratic_bezier(path) arrow_path = [(x0, y0), (x1, y1), (x2, y2)] b_plus, b_minus = make_wedged_bezier2( arrow_path, self.tail_width * mutation_size / 2., wm=self.shrink_factor) patch_path = [(Path.MOVETO, b_plus[0]), (Path.CURVE3, b_plus[1]), (Path.CURVE3, b_plus[2]), (Path.LINETO, b_minus[2]), (Path.CURVE3, b_minus[1]), (Path.CURVE3, b_minus[0]), (Path.CLOSEPOLY, b_minus[0]), ] path = Path([p for c, p in patch_path], [c for c, p in patch_path]) return path, True
Example #15
Source File: show_labels.py From 3d-vehicle-tracking with BSD 3-Clause "New" or "Revised" License | 6 votes |
def poly2patch(self, vertices, types, closed=False, alpha=1., color=None): moves = {'L': Path.LINETO, 'C': Path.CURVE4} points = [v for v in vertices] codes = [moves[t] for t in types] codes[0] = Path.MOVETO if closed: points.append(points[0]) codes.append(Path.CLOSEPOLY) if color is None: color = random_color() # print(codes, points) return mpatches.PathPatch( Path(points, codes), facecolor=color if closed else 'none', edgecolor=color, # if not closed else 'none', lw=1 if closed else 2 * self.scale, alpha=alpha, antialiased=False, snap=True)
Example #16
Source File: show_labels.py From 3d-vehicle-tracking with BSD 3-Clause "New" or "Revised" License | 6 votes |
def poly2patch(self, poly2d, closed=False, alpha=1., color=None): moves = {'L': Path.LINETO, 'C': Path.CURVE4} points = [p[:2] for p in poly2d] codes = [moves[p[2]] for p in poly2d] codes[0] = Path.MOVETO if closed: points.append(points[0]) codes.append(Path.CLOSEPOLY) if color is None: color = random_color() # print(codes, points) return mpatches.PathPatch( Path(points, codes), facecolor=color if closed else 'none', edgecolor=color, # if not closed else 'none', lw=1 if closed else 2 * self.scale, alpha=alpha, antialiased=False, snap=True)
Example #17
Source File: patches.py From neural-network-animation with MIT License | 6 votes |
def _get_bracket(self, x0, y0, cos_t, sin_t, width, length, ): # arrow from x0, y0 to x1, y1 from matplotlib.bezier import get_normal_points x1, y1, x2, y2 = get_normal_points(x0, y0, cos_t, sin_t, width) dx, dy = length * cos_t, length * sin_t vertices_arrow = [(x1 + dx, y1 + dy), (x1, y1), (x2, y2), (x2 + dx, y2 + dy)] codes_arrow = [Path.MOVETO, Path.LINETO, Path.LINETO, Path.LINETO] return vertices_arrow, codes_arrow
Example #18
Source File: patches.py From matplotlib-4-abaqus with MIT License | 6 votes |
def transmute(self, path, mutation_size, linewidth): x0, y0, x1, y1, x2, y2 = self.ensure_quadratic_bezier(path) arrow_path = [(x0, y0), (x1, y1), (x2, y2)] b_plus, b_minus = make_wedged_bezier2( arrow_path, self.tail_width * mutation_size / 2., wm=self.shrink_factor) patch_path = [(Path.MOVETO, b_plus[0]), (Path.CURVE3, b_plus[1]), (Path.CURVE3, b_plus[2]), (Path.LINETO, b_minus[2]), (Path.CURVE3, b_minus[1]), (Path.CURVE3, b_minus[0]), (Path.CLOSEPOLY, b_minus[0]), ] path = Path([p for c, p in patch_path], [c for c, p in patch_path]) return path, True
Example #19
Source File: test_transforms.py From neural-network-animation with MIT License | 6 votes |
def test_clipping_of_log(): # issue 804 M,L,C = Path.MOVETO, Path.LINETO, Path.CLOSEPOLY points = [ (0.2, -99), (0.4, -99), (0.4, 20), (0.2, 20), (0.2, -99) ] codes = [ M, L, L, L, C ] path = Path(points, codes) # something like this happens in plotting logarithmic histograms trans = BlendedGenericTransform(Affine2D(), LogScale.Log10Transform('clip')) tpath = trans.transform_path_non_affine(path) result = tpath.iter_segments(trans.get_affine(), clip=(0, 0, 100, 100), simplify=False) tpoints, tcodes = list(zip(*result)) # Because y coordinate -99 is outside the clip zone, the first # line segment is effectively removed. That means that the closepoly # operation must be replaced by a move to the first point. assert np.allclose(tcodes, [ M, M, L, L, L ])
Example #20
Source File: show_labels.py From bdd100k with BSD 3-Clause "New" or "Revised" License | 6 votes |
def poly2patch(self, vertices, types, closed=False, alpha=1., color=None): moves = {'L': Path.LINETO, 'C': Path.CURVE4} points = [v for v in vertices] codes = [moves[t] for t in types] codes[0] = Path.MOVETO if closed: points.append(points[0]) codes.append(Path.CLOSEPOLY) if color is None: color = random_color() # print(codes, points) return mpatches.PathPatch( Path(points, codes), facecolor=color if closed else 'none', edgecolor=color, # if not closed else 'none', lw=1 if closed else 2 * self.scale, alpha=alpha, antialiased=False, snap=True)
Example #21
Source File: show_labels.py From bdd100k with BSD 3-Clause "New" or "Revised" License | 6 votes |
def poly2patch(self, poly2d, closed=False, alpha=1., color=None): moves = {'L': Path.LINETO, 'C': Path.CURVE4} points = [p[:2] for p in poly2d] codes = [moves[p[2]] for p in poly2d] codes[0] = Path.MOVETO if closed: points.append(points[0]) if codes[-1] == 4: codes.append(Path.LINETO) else: codes.append(Path.CLOSEPOLY) if color is None: color = random_color() # print(codes, points) return mpatches.PathPatch( Path(points, codes), facecolor=color if closed else 'none', edgecolor=color, # if not closed else 'none', lw=1 if closed else 2 * self.scale, alpha=alpha, antialiased=False, snap=True)
Example #22
Source File: hatch.py From matplotlib-4-abaqus with MIT License | 5 votes |
def __init__(self, hatch, density): self.num_rows = (hatch.count('*')) * density path = Path.unit_regular_star(5) self.shape_vertices = path.vertices self.shape_codes = np.ones(len(self.shape_vertices)) * Path.LINETO self.shape_codes[0] = Path.MOVETO Shapes.__init__(self, hatch, density)
Example #23
Source File: backend_ps.py From neural-network-animation with MIT License | 5 votes |
def _convert_path(self, path, transform, clip=False, simplify=None): ps = [] last_points = None if clip: clip = (0.0, 0.0, self.width * 72.0, self.height * 72.0) else: clip = None for points, code in path.iter_segments(transform, clip=clip, simplify=simplify): if code == Path.MOVETO: ps.append("%g %g m" % tuple(points)) elif code == Path.CLOSEPOLY: ps.append("cl") elif last_points is None: # The other operations require a previous point raise ValueError('Path lacks initial MOVETO') elif code == Path.LINETO: ps.append("%g %g l" % tuple(points)) elif code == Path.CURVE3: points = quad2cubic(*(list(last_points[-2:]) + list(points))) ps.append("%g %g %g %g %g %g c" % tuple(points[2:])) elif code == Path.CURVE4: ps.append("%g %g %g %g %g %g c" % tuple(points)) last_points = points ps = "\n".join(ps) return ps
Example #24
Source File: backend_pdf.py From neural-network-animation with MIT License | 5 votes |
def pathOperations(path, transform, clip=None, simplify=None, sketch=None): cmds = [] last_points = None for points, code in path.iter_segments(transform, clip=clip, simplify=simplify, sketch=sketch): if code == Path.MOVETO: # This is allowed anywhere in the path cmds.extend(points) cmds.append(Op.moveto) elif code == Path.CLOSEPOLY: cmds.append(Op.closepath) elif last_points is None: # The other operations require a previous point raise ValueError('Path lacks initial MOVETO') elif code == Path.LINETO: cmds.extend(points) cmds.append(Op.lineto) elif code == Path.CURVE3: points = quad2cubic(*(list(last_points[-2:]) + list(points))) cmds.extend(points[2:]) cmds.append(Op.curveto) elif code == Path.CURVE4: cmds.extend(points) cmds.append(Op.curveto) last_points = points return cmds
Example #25
Source File: hatch.py From neural-network-animation with MIT License | 5 votes |
def __init__(self, hatch, density): self.num_rows = (hatch.count('*')) * density path = Path.unit_regular_star(5) self.shape_vertices = path.vertices self.shape_codes = np.ones(len(self.shape_vertices)) * Path.LINETO self.shape_codes[0] = Path.MOVETO Shapes.__init__(self, hatch, density)
Example #26
Source File: PlotMatplot.py From Grid2Op with Mozilla Public License 2.0 | 5 votes |
def _draw_gen_line(self, pos_x, pos_y, sub_x, sub_y): codes = [ Path.MOVETO, Path.LINETO ] verts = [ (pos_x, pos_y), (sub_x, sub_y) ] path = Path(verts, codes) patch = patches.PathPatch(path, color=self._gen_line_color, lw=self._load_line_width) self.ax.add_patch(patch)
Example #27
Source File: backend_pdf.py From matplotlib-4-abaqus with MIT License | 5 votes |
def pathOperations(path, transform, clip=None, simplify=None, sketch=None): cmds = [] last_points = None for points, code in path.iter_segments(transform, clip=clip, simplify=simplify, sketch=sketch): if code == Path.MOVETO: # This is allowed anywhere in the path cmds.extend(points) cmds.append(Op.moveto) elif code == Path.CLOSEPOLY: cmds.append(Op.closepath) elif last_points is None: # The other operations require a previous point raise ValueError('Path lacks initial MOVETO') elif code == Path.LINETO: cmds.extend(points) cmds.append(Op.lineto) elif code == Path.CURVE3: points = quad2cubic(*(list(last_points[-2:]) + list(points))) cmds.extend(points[2:]) cmds.append(Op.curveto) elif code == Path.CURVE4: cmds.extend(points) cmds.append(Op.curveto) last_points = points return cmds
Example #28
Source File: backend_ps.py From matplotlib-4-abaqus with MIT License | 5 votes |
def _convert_path(self, path, transform, clip=False, simplify=None): ps = [] last_points = None if clip: clip = (0.0, 0.0, self.width * 72.0, self.height * 72.0) else: clip = None for points, code in path.iter_segments(transform, clip=clip, simplify=simplify): if code == Path.MOVETO: ps.append("%g %g m" % tuple(points)) elif code == Path.CLOSEPOLY: ps.append("cl") elif last_points is None: # The other operations require a previous point raise ValueError('Path lacks initial MOVETO') elif code == Path.LINETO: ps.append("%g %g l" % tuple(points)) elif code == Path.CURVE3: points = quad2cubic(*(list(last_points[-2:]) + list(points))) ps.append("%g %g %g %g %g %g c" % tuple(points[2:])) elif code == Path.CURVE4: ps.append("%g %g %g %g %g %g c" % tuple(points)) last_points = points ps = "\n".join(ps) return ps
Example #29
Source File: backend_wx.py From matplotlib-4-abaqus with MIT License | 5 votes |
def convert_path(gfx_ctx, path, transform): wxpath = gfx_ctx.CreatePath() for points, code in path.iter_segments(transform): if code == Path.MOVETO: wxpath.MoveToPoint(*points) elif code == Path.LINETO: wxpath.AddLineToPoint(*points) elif code == Path.CURVE3: wxpath.AddQuadCurveToPoint(*points) elif code == Path.CURVE4: wxpath.AddCurveToPoint(*points) elif code == Path.CLOSEPOLY: wxpath.CloseSubpath() return wxpath
Example #30
Source File: backend_pgf.py From matplotlib-4-abaqus with MIT License | 5 votes |
def _print_pgf_path(self, gc, path, transform): f = 1. / self.dpi # check for clip box bbox = gc.get_clip_rectangle() if gc else None if bbox: p1, p2 = bbox.get_points() clip = (p1[0], p1[1], p2[0], p2[1]) else: clip = None # build path for points, code in path.iter_segments(transform, clip=clip): if code == Path.MOVETO: x, y = tuple(points) writeln(self.fh, r"\pgfpathmoveto{\pgfqpoint{%fin}{%fin}}" % (f * x, f * y)) elif code == Path.CLOSEPOLY: writeln(self.fh, r"\pgfpathclose") elif code == Path.LINETO: x, y = tuple(points) writeln(self.fh, r"\pgfpathlineto{\pgfqpoint{%fin}{%fin}}" % (f * x, f * y)) elif code == Path.CURVE3: cx, cy, px, py = tuple(points) coords = cx * f, cy * f, px * f, py * f writeln(self.fh, r"\pgfpathquadraticcurveto{\pgfqpoint{%fin}{%fin}}{\pgfqpoint{%fin}{%fin}}" % coords) elif code == Path.CURVE4: c1x, c1y, c2x, c2y, px, py = tuple(points) coords = c1x * f, c1y * f, c2x * f, c2y * f, px * f, py * f writeln(self.fh, r"\pgfpathcurveto{\pgfqpoint{%fin}{%fin}}{\pgfqpoint{%fin}{%fin}}{\pgfqpoint{%fin}{%fin}}" % coords)