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打开网页和暂停实例
Sep 30 Python
Python实现的简单dns查询功能示例
May 24 Python
Python正则表达式指南 推荐
Oct 09 Python
Python判断一个list中是否包含另一个list全部元素的方法分析
Dec 24 Python
python微信撤回监测代码
Apr 29 Python
python 和c++实现旋转矩阵到欧拉角的变换方式
Dec 04 Python
Python如何使用27行代码绘制星星图
Jul 20 Python
Python selenium键盘鼠标事件实现过程详解
Jul 28 Python
Python datetime模块的使用示例
Feb 02 Python
深度学习小工程练习之垃圾分类详解
Apr 14 Python
基于Pygame实现简单的贪吃蛇游戏
Dec 06 Python
Python&Matlab实现樱花的绘制
Apr 07 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字符转义相关函数小结(php下的转义字符串)
2007/04/12 PHP
php实现的漂亮分页方法
2014/04/17 PHP
ThinkPHP 在阿里云上的nginx.config配置实例详解
2017/10/11 PHP
修改jQuery.Autocomplete插件 支持中文输入法 避免TAB、ENTER键失效、导致表单提交
2009/10/11 Javascript
JavaScript Accessor实现说明
2010/12/06 Javascript
JS动态修改图片的URL(src)的方法
2015/04/01 Javascript
JS封装的自动创建表格的实现代码
2016/06/15 Javascript
通过Ajax使用FormData对象无刷新上传文件方法
2016/12/08 Javascript
jQuery中map函数的两种方式
2017/04/07 jQuery
vue2 中如何实现动态表单增删改查实例
2017/06/09 Javascript
利用JS动态生成隔行换色HTML表格的两种方法
2018/10/09 Javascript
vue 监听窗口变化对页面部分元素重新渲染操作
2020/07/28 Javascript
[01:16:16]DOTA2-DPC中国联赛定级赛 RNG vs Phoenix BO3第二场 1月8日
2021/03/11 DOTA
python网络编程实例简析
2014/09/26 Python
Python 实现一个颜色色值转换的小工具
2016/12/06 Python
动态规划之矩阵连乘问题Python实现方法
2017/11/27 Python
Zookeeper接口kazoo实例解析
2018/01/22 Python
JS设计模式之责任链模式实例详解
2018/02/03 Python
python使用多进程的实例详解
2018/09/19 Python
python对列进行平移变换的方法(shift)
2019/01/10 Python
python读写csv文件方法详细总结
2019/07/05 Python
Python字典常见操作实例小结【定义、添加、删除、遍历】
2019/10/25 Python
python数据预处理方式 :数据降维
2020/02/24 Python
使用Python获取爱奇艺电视剧弹幕数据的示例代码
2021/01/12 Python
国际书籍零售商:Wordery
2017/11/01 全球购物
泰国演唱会订票网站:StubHub泰国
2018/02/26 全球购物
德国在线购买葡萄酒网站:Geile Weine
2019/09/24 全球购物
什么是触发器(trigger)? 触发器有什么作用?
2013/09/18 面试题
十岁生日家长答谢词
2014/01/17 职场文书
装修五一活动策划案
2014/01/23 职场文书
中学生自我评价范文
2014/02/08 职场文书
万年牢教学反思
2014/02/15 职场文书
小学语文国培感言
2014/03/04 职场文书
于丹论语心得观后感
2015/06/15 职场文书
写作技巧:如何撰写商业计划书
2019/08/08 职场文书
基于redis+lua进行限流的方法
2022/07/23 Redis