1. 程式人生 > 程式設計 >Python使用matplotlib 畫矩形的三種方式分析

Python使用matplotlib 畫矩形的三種方式分析

本文例項講述了Python使用matplotlib 畫矩形的三種方式。分享給大家供大家參考,具體如下:

假設矩形兩點座標如下,分別為:x1,y1,x2,y2

cat_dict['bbox'][i] = (min_row,min_col,max_row,max_col)

1. plt.plot(x,y)

這種方式畫的矩形 因為邊距的問題 會放縮

plt.plot([cat_dict['bbox'][i][1],cat_dict['bbox'][i][3],cat_dict['bbox'][i][1],cat_dict['bbox'][i][1]],# col
     [cat_dict['bbox'][i][0],cat_dict['bbox'][i][0],cat_dict['bbox'][i][2],cat_dict['bbox'][i][0]],# row
     color=[c / 255 for c in label_colors[cat_idx]],marker='.',ms=0)

2. ax.add_line(Line2D)

新增 4 條直線的方式,比較繁瑣

from matplotlib.lines import Line2D
color = [c / 255 for c in label_colors[cat_idx]]
ax.add_line(Line2D([cat_dict['bbox'][i][1],cat_dict['bbox'][i][3]],[cat_dict['bbox'][i][0],linewidth=2,color=color))
ax.add_line(Line2D([cat_dict['bbox'][i][3],cat_dict['bbox'][i][2]],[cat_dict['bbox'][i][2],color=color))
ax.add_line(Line2D([cat_dict['bbox'][i][1],color=color))

3. plt.gca().add_patch(plt.Rectangle())

最好的一種實現方式,fast rcnn 也是這麼用的,傳送門

plt.gca().add_patch(plt.Rectangle(xy=(cat_dict['bbox'][i][1],cat_dict['bbox'][i][0]),width=cat_dict['bbox'][i][3] - cat_dict['bbox'][i][1],height=cat_dict['bbox'][i][2] - cat_dict['bbox'][i][0],edgecolor=[c / 255 for c in label_colors[cat_idx]],fill=False,linewidth=2))

更多關於Python相關內容感興趣的讀者可檢視本站專題:《Python數學運算技巧總結》、《Python資料結構與演算法教程》、《Python函式使用技巧總結》、《Python字串操作技巧彙總》及《Python入門與進階經典教程》

希望本文所述對大家Python程式設計有所幫助。