本文整理匯總了Python中matplotlib.pyplot.Polygon方法的典型用法代碼示例。如果您正苦於以下問題:Python pyplot.Polygon方法的具體用法?Python pyplot.Polygon怎麽用?Python pyplot.Polygon使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類matplotlib.pyplot
的用法示例。
在下文中一共展示了pyplot.Polygon方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: plot_box
# 需要導入模塊: from matplotlib import pyplot [as 別名]
# 或者: from matplotlib.pyplot import Polygon [as 別名]
def plot_box(box, box_format='xywh', color='r', linewidth=1, normalized=False, vertices=False):
if box_format == 'xywh': # opencv
xmin, ymin, w, h = box
xmax, ymax = xmin + w, ymin + h
elif box_format == 'xyxy':
xmin, ymin, xmax, ymax = box
if box_format == 'polygon':
xy_rec = np.reshape(box, (-1, 2))
else:
xy_rec = np.array([[xmin, ymin], [xmax, ymin], [xmax, ymax], [xmin, ymax]])
if normalized:
im = plt.gci()
xy_rec = xy_rec * np.tile(im.get_size(), (4,1))
ax = plt.gca()
ax.add_patch(plt.Polygon(xy_rec, fill=False, edgecolor=color, linewidth=linewidth))
if vertices:
c = 'rgby'
for i in range(4):
plt.plot(xy_rec[i,0],xy_rec[i,1], c[i], marker='o', markersize=4)
示例2: drawComplex
# 需要導入模塊: from matplotlib import pyplot [as 別名]
# 或者: from matplotlib.pyplot import Polygon [as 別名]
def drawComplex(data, ph, axes=[-6, 8, -6, 6]):
plt.clf()
plt.axis(axes) # axes = [x1, x2, y1, y2]
plt.scatter(data[:, 0], data[:, 1]) # plotting just for clarity
for i, txt in enumerate(data):
plt.annotate(i, (data[i][0] + 0.05, data[i][1])) # add labels
# add lines for edges
for edge in [e for e in ph.ripsComplex if len(e) == 2]:
# print(edge)
pt1, pt2 = [data[pt] for pt in [n for n in edge]]
# plt.gca().add_line(plt.Line2D(pt1,pt2))
line = plt.Polygon([pt1, pt2], closed=None, fill=None, edgecolor='r')
plt.gca().add_line(line)
# add triangles
for triangle in [t for t in ph.ripsComplex if len(t) == 3]:
pt1, pt2, pt3 = [data[pt] for pt in [n for n in triangle]]
line = plt.Polygon([pt1, pt2, pt3], closed=False,
color="blue", alpha=0.3, fill=True, edgecolor=None)
plt.gca().add_line(line)
plt.show()
示例3: drawComplex
# 需要導入模塊: from matplotlib import pyplot [as 別名]
# 或者: from matplotlib.pyplot import Polygon [as 別名]
def drawComplex(origData, ripsComplex, axes=[-6,8,-6,6]):
plt.clf()
plt.axis(axes)
plt.scatter(origData[:,0],origData[:,1]) #plotting just for clarity
for i, txt in enumerate(origData):
plt.annotate(i, (origData[i][0]+0.05, origData[i][1])) #add labels
#add lines for edges
for edge in [e for e in ripsComplex if len(e)==2]:
#print(edge)
pt1,pt2 = [origData[pt] for pt in [n for n in edge]]
#plt.gca().add_line(plt.Line2D(pt1,pt2))
line = plt.Polygon([pt1,pt2], closed=None, fill=None, edgecolor='r')
plt.gca().add_line(line)
#add triangles
for triangle in [t for t in ripsComplex if len(t)==3]:
pt1,pt2,pt3 = [origData[pt] for pt in [n for n in triangle]]
line = plt.Polygon([pt1,pt2,pt3], closed=False, color="blue",alpha=0.3, fill=True, edgecolor=None)
plt.gca().add_line(line)
plt.show()
示例4: plotTZ
# 需要導入模塊: from matplotlib import pyplot [as 別名]
# 或者: from matplotlib.pyplot import Polygon [as 別名]
def plotTZ(filename=None):
t = np.linspace(0, 1, 101)
z = 0.25 + 0.5 / (1 + np.exp(- 20 * (t - 0.5))) + 0.05 * np.cos(t * 2 * np.pi)
cmap = cm.get_cmap('cool')
fig, (ax1, ax2) = plt.subplots(1, 2, gridspec_kw = {'width_ratios':[19, 1]})
poly1 = [[0, 0]]
poly1.extend([[t[i], z[i]] for i in range(t.size)])
poly1.extend([[1, 0], [0, 0]])
poly2 = [[0, 1]]
poly2.extend([[t[i], z[i]] for i in range(t.size)])
poly2.extend([[1, 1], [0, 1]])
poly1 = plt.Polygon(poly1,fc=cmap(0.0))
poly2 = plt.Polygon(poly2,fc=cmap(1.0))
ax1.add_patch(poly1)
ax1.add_patch(poly2)
ax1.set_xlabel('x1', size=22)
ax1.set_ylabel('x2', size=22)
ax1.set_title('True Data', size=28)
colorbar.ColorbarBase(ax2, cmap=cmap, format='%.1f')
ax2.set_ylabel('Output y', size=22)
plt.show()
if not filename is None:
plt.savefig(filename, format="pdf", bbox_inches="tight")
plt.close()
示例5: plot_assignement
# 需要導入模塊: from matplotlib import pyplot [as 別名]
# 或者: from matplotlib.pyplot import Polygon [as 別名]
def plot_assignement(self, map_idx):
ax = plt.gca()
im = plt.gci()
img_h, img_w = image_size = im.get_size()
# ground truth
boxes = self.gt_boxes
boxes_x = (boxes[:,0] + boxes[:,2]) / 2. * img_h
boxes_y = (boxes[:,1] + boxes[:,3]) / 2. * img_w
for box in boxes:
xy_rec = to_rec(box[:4], image_size)
ax.add_patch(plt.Polygon(xy_rec, fill=False, edgecolor='b', linewidth=2))
plt.plot(boxes_x, boxes_y, 'bo', markersize=6)
# prior boxes
for idx, box_idx in self.match_indices.items():
if idx >= self.map_offsets[map_idx] and idx < self.map_offsets[map_idx+1]:
x, y = self.priors_xy[idx]
w, h = self.priors_wh[idx]
plt.plot(x, y, 'ro', markersize=4)
plt.plot([x, boxes_x[box_idx]], [y, boxes_y[box_idx]], '-r', linewidth=1)
ax.add_patch(plt.Rectangle((x-w/2, y-h/2), w+1, h+1,
fill=False, edgecolor='y', linewidth=2))
示例6: polygon_iou
# 需要導入模塊: from matplotlib import pyplot [as 別名]
# 或者: from matplotlib.pyplot import Polygon [as 別名]
def polygon_iou(list1, list2):
"""
Intersection over union between two shapely polygons.
"""
polygon_points1 = np.array(list1).reshape(4, 2)
poly1 = Polygon(polygon_points1).convex_hull
polygon_points2 = np.array(list2).reshape(4, 2)
poly2 = Polygon(polygon_points2).convex_hull
union_poly = np.concatenate((polygon_points1, polygon_points2))
if not poly1.intersects(poly2): # this test is fast and can accelerate calculation
iou = 0
else:
try:
inter_area = poly1.intersection(poly2).area
# union_area = poly1.area + poly2.area - inter_area
union_area = MultiPoint(union_poly).convex_hull.area
if union_area == 0:
return 0
iou = float(inter_area) / union_area
except shapely.geos.TopologicalError:
print('shapely.geos.TopologicalError occured, iou set to 0')
iou = 0
return iou
示例7: plot_result
# 需要導入模塊: from matplotlib import pyplot [as 別名]
# 或者: from matplotlib.pyplot import Polygon [as 別名]
def plot_result(
self,
axis_values,
force_1=None,
force_2=None,
digits=2,
node_results=True,
fill_polygon=True,
color=0
):
if fill_polygon:
rec = plt.Polygon(
np.vstack(axis_values).T, color="C{}".format(color), alpha=0.3
)
self.one_fig.add_patch(rec)
# plot force
x_val = axis_values[0]
y_val = axis_values[1]
self.one_fig.plot(x_val, y_val, color="C{}".format(color))
if node_results:
self._add_node_values(x_val, y_val, force_1, force_2, digits)
示例8: mass_center
# 需要導入模塊: from matplotlib import pyplot [as 別名]
# 或者: from matplotlib.pyplot import Polygon [as 別名]
def mass_center(self):
'''mass center of a node'''
shape = self.brush.style[1]
if isinstance(self.obj, (plt.Polygon, patches.PathPatch)):
pos = self._clean_path.mean(axis=0)
else:
pos = self.position
return Pin(pos)
示例9: height
# 需要導入模塊: from matplotlib import pyplot [as 別名]
# 或者: from matplotlib.pyplot import Polygon [as 別名]
def height(self):
shape = self.brush.style[1]
if isinstance(self.obj, plt.Circle):
return self.obj.radius * 2
elif isinstance(self.obj, plt.Rectangle):
return self.obj.get_height()
elif isinstance(self.obj, patches.FancyBboxPatch):
return self.obj.get_height() + 2*self.obj.get_boxstyle().pad
elif isinstance(self.obj, (plt.Polygon, patches.PathPatch)):
y = self.path[:,1]
return y.max() - y.min()
else:
raise
示例10: width
# 需要導入模塊: from matplotlib import pyplot [as 別名]
# 或者: from matplotlib.pyplot import Polygon [as 別名]
def width(self):
shape = self.brush.style[1]
if isinstance(self.obj, plt.Circle):
return self.obj.radius * 2
elif isinstance(self.obj, plt.Rectangle):
return self.obj.get_width()
elif isinstance(self.obj, patches.FancyBboxPatch):
return self.obj.get_width() + 2*self.obj.get_boxstyle().pad
elif isinstance(self.obj, (plt.Polygon, patches.PathPatch)):
x = self.path[:,0]
return x.max() - x.min()
else:
raise
示例11: plot_results
# 需要導入模塊: from matplotlib import pyplot [as 別名]
# 或者: from matplotlib.pyplot import Polygon [as 別名]
def plot_results(self, results=None, classes=None, show_labels=True, gt_data=None, confidence_threshold=None):
if results is None:
results = self.results
if confidence_threshold is not None:
mask = results[:, 4] > confidence_threshold
results = results[mask]
if classes is not None:
colors = plt.cm.hsv(np.linspace(0, 1, len(classes)+1)).tolist()
ax = plt.gca()
im = plt.gci()
image_size = im.get_size()
# draw ground truth
if gt_data is not None:
for box in gt_data:
label = np.nonzero(box[4:])[0][0]+1
color = 'g' if classes == None else colors[label]
xy_rec = to_rec(box[:4], image_size)
ax.add_patch(plt.Polygon(xy_rec, fill=True, color=color, linewidth=1, alpha=0.3))
# draw prediction
for r in results:
label = int(r[5])
confidence = r[4]
color = 'r' if classes == None else colors[label]
xy_rec = to_rec(r[:4], image_size)
ax.add_patch(plt.Polygon(xy_rec, fill=False, edgecolor=color, linewidth=2))
if show_labels:
label_name = label if classes == None else classes[label]
xmin, ymin = xy_rec[0]
display_txt = '%0.2f, %s' % (confidence, label_name)
ax.text(xmin, ymin, display_txt, bbox={'facecolor':color, 'alpha':0.5})
示例12: plot_gt
# 需要導入模塊: from matplotlib import pyplot [as 別名]
# 或者: from matplotlib.pyplot import Polygon [as 別名]
def plot_gt(self, boxes, show_labels=True):
# if parameter is sample index
if type(boxes) in [int]:
boxes = self.data[boxes]
ax = plt.gca()
im = plt.gci()
w, h = im.get_size()
for box in boxes:
class_idx = int(box[-1])
color = self.colors[class_idx]
is_polygon = len(box)-1 > 4
if is_polygon:
xy = box[:-1].reshape((-1,2))
else:
xmin, ymin, xmax, ymax = box[:4]
xy = np.array([[xmin, ymin], [xmax, ymin], [xmax, ymax], [xmin, ymax]])
xy = xy * [h, w]
ax.add_patch(plt.Polygon(xy, fill=False, edgecolor=color, linewidth=1))
if show_labels:
label_name = self.classes[class_idx]
if is_polygon:
angle = np.arctan((xy[1,0]-xy[0,0])/(xy[1,1]-xy[0,1]+eps))
if angle < 0:
angle += np.pi
angle = angle/np.pi*180-90
else:
angle = 0
ax.text(xy[0,0], xy[0,1], label_name, bbox={'facecolor':color, 'alpha':0.5}, rotation=angle)
示例13: polygon_from_list
# 需要導入模塊: from matplotlib import pyplot [as 別名]
# 或者: from matplotlib.pyplot import Polygon [as 別名]
def polygon_from_list(line):
"""
Create a shapely polygon object from gt or dt line.
"""
# polygon_points = [float(o) for o in line.split(',')[:8]]
polygon_points = np.array(line).reshape(4, 2)
polygon = Polygon(polygon_points).convex_hull
return polygon
示例14: visulization
# 需要導入模塊: from matplotlib import pyplot [as 別名]
# 或者: from matplotlib.pyplot import Polygon [as 別名]
def visulization(img_dir, bbox_dir, visu_dir):
for root, dirs, files in os.walk(img_dir):
for file in files:
# print(file)
# if file!='img_75.jpg':
# continue
print(file)
image_name = file
img_path = os.path.join(img_dir, image_name)
img = cv2.imread(img_path)
plt.clf()
plt.imshow(img)
currentAxis = plt.gca()
bbox_name = 'res_' + file[0:len(file) - 3] + 'txt'
bbox_path = os.path.join(bbox_dir, bbox_name)
if os.path.isfile(bbox_path):
with open(bbox_path, 'r') as f:
count = 1
for line in f.readlines():
line = line.strip()
x1 = line.split(',')[0]
y1 = line.split(',')[1]
x2 = line.split(',')[2]
y2 = line.split(',')[3]
x3 = line.split(',')[4]
y3 = line.split(',')[5]
x4 = line.split(',')[6]
y4 = line.split(',')[7]
rbox = np.array([[x1, y1], [x2, y2], [x3, y3], [x4, y4]])
color_rbox = 'r'
currentAxis.add_patch(plt.Polygon(rbox, fill=False, edgecolor=color_rbox, linewidth=1))
# currentAxis.text(int(x1), int(y1), str(count), bbox={'facecolor':'white', 'alpha':0.5})
count = count + 1
plt.axis('off')
plt.savefig(visu_dir + image_name, dpi=300)
示例15: __roll_support_patch
# 需要導入模塊: from matplotlib import pyplot [as 別名]
# 或者: from matplotlib.pyplot import Polygon [as 別名]
def __roll_support_patch(self, max_val):
"""
:param max_val: max scale of the plot
"""
radius = PATCH_SIZE * max_val
count = 0
for node in self.system.supports_roll:
direction = self.system.supports_roll_direction[count]
x1 = np.cos(np.pi) * radius + node.vertex.x + radius
z1 = np.sin(np.pi) * radius + node.vertex.y
x2 = np.cos(np.radians(90)) * radius + node.vertex.x + radius
z2 = np.sin(np.radians(90)) * radius + node.vertex.y
x3 = np.cos(np.radians(270)) * radius + node.vertex.x + radius
z3 = np.sin(np.radians(270)) * radius + node.vertex.y
triangle = np.array([[x1, z1], [x2, z2], [x3, z3]])
if node.id in self.system.inclined_roll:
angle = self.system.inclined_roll[node.id]
triangle = rotate_xy(triangle, angle + np.pi * 0.5)
support_patch = plt.Polygon(triangle, color="r", zorder=9)
self.one_fig.add_patch(support_patch)
self.one_fig.plot(
triangle[1:, 0] - 0.5 * radius * np.sin(angle),
triangle[1:, 1] - 0.5 * radius * np.cos(angle),
color="r",
)
elif direction == 2: # horizontal roll
support_patch = mpatches.RegularPolygon(
(node.vertex.x, node.vertex.y - radius),
numVertices=3,
radius=radius,
color="r",
zorder=9,
)
self.one_fig.add_patch(support_patch)
y = -node.vertex.z - 2 * radius
self.one_fig.plot(
[node.vertex.x - radius, node.vertex.x + radius], [y, y], color="r"
)
elif direction == 1: # vertical roll
# translate the support to the node
support_patch = mpatches.Polygon(triangle, color="r", zorder=9)
self.one_fig.add_patch(support_patch)
y = node.vertex.y - radius
self.one_fig.plot(
[node.vertex.x + radius * 1.5, node.vertex.x + radius * 1.5],
[y, y + 2 * radius],
color="r",
)
count += 1