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 04 Python
Python实现批量转换文件编码的方法
Jul 28 Python
python删除不需要的python文件方法
Apr 24 Python
Python制作动态字符图的实例
Jan 27 Python
Python 学习教程之networkx
Apr 15 Python
python 整数越界问题详解
Jun 27 Python
python通过SSH登陆linux并操作的实现
Oct 10 Python
基于python调用jenkins-cli实现快速发布
Aug 14 Python
使用python爬取抖音app视频的实例代码
Dec 01 Python
Python办公自动化之教你如何用Python将任意文件转为PDF格式
Jun 28 Python
Python制作动态字符画的源码
Aug 04 Python
Python内置类型集合set和frozenset的使用详解
Apr 26 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生成简单的验证码
2016/06/01 PHP
php如何修改SESSION的生存存储时间的实例代码
2017/07/05 PHP
laravel + vue实现的数据统计绘图(今天、7天、30天数据)
2018/07/31 PHP
PHP一致性hash分布式算法封装类定义与用法示例
2018/08/04 PHP
jQuery实现单行文字间歇向上滚动源代码
2013/06/02 Javascript
node.js中的url.parse方法使用说明
2014/12/10 Javascript
详解XMLHttpRequest(一)同步请求和异步请求
2016/09/14 Javascript
js鼠标按键事件和键盘按键事件用法实例汇总
2016/10/03 Javascript
用AngularJS来实现监察表单按钮的禁用效果
2016/11/02 Javascript
js基于FileSaver.js 浏览器导出Excel文件的示例
2017/08/15 Javascript
Vue仿微信app页面跳转动画效果
2019/08/21 Javascript
Vue 封装防刷新考试倒计时组件的实现
2020/06/05 Javascript
Python解析最简单的验证码
2016/01/07 Python
python 网络爬虫初级实现代码
2016/02/27 Python
举例讲解Python中的list列表数据结构用法
2016/03/12 Python
python实现文件助手中查看微信撤回消息
2019/04/29 Python
python 实现GUI(图形用户界面)编程详解
2019/07/17 Python
Python绘制热力图示例
2019/09/27 Python
利用pandas合并多个excel的方法示例
2019/10/10 Python
django自定义模板标签过程解析
2019/12/14 Python
彻底搞懂 python 中文乱码问题(深入分析)
2020/02/28 Python
Python GUI库Tkiner使用方法代码示例
2020/11/27 Python
林清轩官方网站:山茶花润肤油开创者
2016/10/26 全球购物
新加坡网上化妆品店:Best Buy World
2018/05/18 全球购物
Yahoo-PHP面试题3
2012/01/14 面试题
会计师事务所审计实习自我鉴定
2013/09/20 职场文书
全陪导游欢迎词
2014/01/17 职场文书
元旦晚会主持词
2014/03/24 职场文书
销售团队口号大全
2014/06/06 职场文书
作风建设年活动总结
2014/08/27 职场文书
公司授权委托书格式样本
2014/10/01 职场文书
大学生求职意向书
2015/05/11 职场文书
2016学校先进党组织事迹材料
2016/02/29 职场文书
成本低的5个创业项目:投资小、赚钱快
2019/08/20 职场文书
redis三种高可用方式部署的实现
2021/05/11 Redis
MySQL数据库超时设置配置的方法实例
2021/10/15 MySQL