Python使用matplotlib 画矩形的三种方式分析


Posted in Python onOctober 31, 2019

本文实例讲述了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][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][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], cat_dict['bbox'][i][0]], 
          linewidth=2, 
          color=color))
ax.add_line(Line2D([cat_dict['bbox'][i][3], cat_dict['bbox'][i][3]],
          [cat_dict['bbox'][i][0], cat_dict['bbox'][i][2]], 
          linewidth=2, 
          color=color))
ax.add_line(Line2D([cat_dict['bbox'][i][3], cat_dict['bbox'][i][1]],
          [cat_dict['bbox'][i][2], cat_dict['bbox'][i][2]], 
          linewidth=2, 
          color=color))
ax.add_line(Line2D([cat_dict['bbox'][i][1], cat_dict['bbox'][i][1]],
          [cat_dict['bbox'][i][2], cat_dict['bbox'][i][0]], 
          linewidth=2, 
          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使用matplotlib 画矩形的三种方式分析

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python计算方程式根的方法
May 07 Python
Python数据结构之单链表详解
Sep 12 Python
Python中垃圾回收和del语句详解
Nov 15 Python
python版百度语音识别功能
Jul 09 Python
python Django里CSRF 对应策略详解
Aug 05 Python
Python全局锁中如何合理运用多线程(多进程)
Nov 06 Python
tensorflow实现残差网络方式(mnist数据集)
May 26 Python
python爬虫数据保存到mongoDB的实例方法
Jul 28 Python
python利用google翻译方法实例(翻译字幕文件)
Sep 21 Python
python 6种方法实现单例模式
Dec 15 Python
python设置 matplotlib 正确显示中文的四种方式
May 10 Python
Python进度条的使用
May 17 Python
python实现操作文件(文件夹)
Oct 31 #Python
python用requests实现http请求代码实例
Oct 31 #Python
python zip()函数使用方法解析
Oct 31 #Python
python实现按首字母分类查找功能
Oct 31 #Python
利用python Selenium实现自动登陆京东签到领金币功能
Oct 31 #Python
python+Django实现防止SQL注入的办法
Oct 31 #Python
Python 爬虫实现增加播客访问量的方法实现
Oct 31 #Python
You might like
地摊中国 - 珍藏老照片
2020/08/18 杂记
PHP 日期时间函数的高级应用技巧
2009/10/10 PHP
PHP使用CURL实现多线程抓取网页
2015/04/30 PHP
laravel中Redis队列监听中断的分析
2020/09/14 PHP
javascript函数中的arguments参数
2010/08/01 Javascript
jQuery实现随意改变div任意属性的名称和值(部分原生js实现)
2013/05/28 Javascript
JS中表单的使用小结
2014/01/11 Javascript
在JavaScript中使用timer示例
2014/05/08 Javascript
ES6新特性之模块Module用法详解
2017/04/01 Javascript
ES6新特性四:变量的解构赋值实例
2017/04/21 Javascript
如何在 Vue.js 中使用第三方js库
2017/04/25 Javascript
angularJs中datatable实现代码
2017/06/03 Javascript
jQuery中extend函数简单用法示例
2017/10/11 jQuery
Vue多种方法实现表头和首列固定的示例代码
2018/02/02 Javascript
VSCode搭建React Native环境
2020/05/07 Javascript
video.js添加自定义组件的方法
2020/12/09 Javascript
python发送邮件实例分享
2017/07/28 Python
Python自定义函数计算给定日期是该年第几天的方法示例
2019/05/30 Python
python 梯度法求解函数极值的实例
2019/07/10 Python
Python中pymysql 模块的使用详解
2019/08/12 Python
python如何将多个PDF进行合并
2019/08/13 Python
PyCharm 无法 import pandas 程序卡住的解决方式
2020/03/09 Python
tensorflow使用freeze_graph.py将ckpt转为pb文件的方法
2020/04/22 Python
Python爬虫实现自动登录、签到功能的代码
2020/08/20 Python
Python numpy大矩阵运算内存不足如何解决
2020/11/19 Python
HTML5中input[type='date']自定义样式与日历校验功能的实现代码
2017/07/11 HTML / CSS
软件测试英文面试题
2012/10/14 面试题
给小学生的新年寄语
2014/04/04 职场文书
红领巾广播站广播稿
2014/10/19 职场文书
论群众路线学习笔记
2014/11/06 职场文书
师德师风事迹材料
2014/12/20 职场文书
一年级语文下册复习计划
2015/01/17 职场文书
学校通报表扬范文
2015/05/04 职场文书
招商银行工作证明
2015/06/17 职场文书
MongoDB数据库的安装步骤
2021/06/18 MongoDB
《极主夫道》真人电影正式预告 定档6月3日上映
2022/04/05 日漫