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编写百度贴吧的简单爬虫
Apr 02 Python
python文件写入实例分析
Apr 08 Python
深入解析Python中的urllib2模块
Nov 13 Python
python pandas修改列属性的方法详解
Jun 09 Python
python之super的使用小结
Aug 13 Python
浅谈Python traceback的优雅处理
Aug 31 Python
Python Subprocess模块原理及实例
Aug 26 Python
如何基于Python获取图片的物理尺寸
Nov 25 Python
Django model.py表单设置默认值允许为空的操作
May 19 Python
在django中form的label和verbose name的区别说明
May 20 Python
树莓派4B安装Tensorflow的方法步骤
Jul 16 Python
python plt.plot bar 如何设置绘图尺寸大小
Jun 01 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
php获取网卡的MAC地址支持WIN/LINUX系统
2014/04/30 PHP
js使浏览器窗口最大化实现代码(适用于IE)
2013/08/07 Javascript
JavaScript探测CSS动画是否已经完成的方法
2016/08/30 Javascript
前端实现文件的断点续传(前端文件提交+后端PHP文件接收)
2016/11/04 Javascript
单击按钮发送验证码,出现倒计时的简单实例
2017/03/17 Javascript
js实现一个猜数字游戏
2017/03/31 Javascript
JavaScript30 一个月纯 JS 挑战中文指南(英文全集)
2017/07/23 Javascript
详解Javascript 中的 class、构造函数、工厂函数
2017/12/20 Javascript
详解tween.js 中文使用指南
2018/01/05 Javascript
Vue2.0用户权限控制解决方案的示例
2018/02/10 Javascript
express默认日志组件morgan的方法
2018/04/05 Javascript
详解mpvue中小程序自定义导航组件开发指南
2019/02/11 Javascript
JS实现判断有效的数独算法示例
2019/02/25 Javascript
在nodejs中创建child process的方法
2021/01/26 NodeJs
[51:14]LGD vs VP 2018国际邀请赛淘汰赛BO3 第一场 8.21
2018/08/22 DOTA
Python语言实现机器学习的K-近邻算法
2015/06/11 Python
Python使用Beautiful Soup包编写爬虫时的一些关键点
2016/01/20 Python
django定期执行任务(实例讲解)
2017/11/03 Python
Python 中Pickle库的使用详解
2018/02/24 Python
python web基础之加载静态文件实例
2018/03/20 Python
利用arcgis的python读取要素的X,Y方法
2018/12/22 Python
python3实现钉钉消息推送的方法示例
2019/03/14 Python
pandas DataFrame 行列索引及值的获取的方法
2019/07/02 Python
django实现后台显示媒体文件
2020/04/07 Python
python 5个实用的技巧
2020/09/27 Python
详解FireFox下Canvas使用图像合成绘制SVG的Bug
2019/07/10 HTML / CSS
浅谈html5增强的页面元素
2016/06/14 HTML / CSS
大学生实习期自我评价范文
2013/10/03 职场文书
成语的广告词
2014/03/19 职场文书
大学生学期自我鉴定
2014/03/19 职场文书
2015年路政工作总结
2015/05/22 职场文书
拥有这5个特征人,“命”都不会太差
2019/08/16 职场文书
Python基础之进程详解
2021/05/21 Python
Python编程中Python与GIL互斥锁关系作用分析
2021/09/15 Python
解决Mysql多行子查询的使用及空值问题
2022/01/22 MySQL
《现实主义勇者的王国再建记》第三弹OST全曲试听片段公开
2022/04/04 日漫