Python使用matplotlib 畫矩形的三種方式分析
阿新 • • 發佈:2020-01-09
本文例項講述了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程式設計有所幫助。