python如何画矩形_python matplotlib.pyplot画矩形图 以及plt.gca()

本文介绍了Python中利用matplotlib库绘制矩形图的方法,包括两种不同的代码实现。通过设置Rectangle参数,可以控制矩形的位置、大小。同时,文章还提到了在fast rcnn中结合图像和矩阵进行矩形绘制的场景,以及如何隐藏坐标轴。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

plt的Rectangle参数:

第一个参数是坐标(x,y),即矩形的画图的起点坐标,这个起点坐标不是一味地从左下角开始画,而是对应整个图中坐标原点,即(0,0)。

第二个参数是矩形宽度

第三个坐标是矩形高度

注意:在fast rcnn代码中,roi框是在图像中画出来的,而图像的原点在左上角,但坐标轴的原点在左下角,所以即使Rectangle中参数一模一样,但在图像和坐标轴中画出来的不一样。

plt.axis('off')表示不显示坐标轴

第一种代码:

import matplotlib.pyplot as plt

fig = plt.figure()

ax = fig.add_subplot(111)

rect = plt.Rectangle((0.1,0.1),0.5,0.3)

ax.add_patch(rect)

plt.show()

第二种代码:

import matplotlib.pyplot as plt

fig = plt.figure()  #创建图

ax = fig.add_subplot(111) #创建子图

plt.gca().add_patch(plt.Rectangle((0.1,0.1),0.5,0.3))

plt.show()

fast rcnn中将绘制图片和画矩阵相结合:

def _vis_minibatch(im_blob, rois_blob, labels_blob, overlaps):

"""Visualize a mini-batch for debugging."""

import matplotlib.pyplot as plt

#print im_blob

count = 0

for i in xrange(rois_blob.shape[0]):

count += 1

rois = rois_blob[i, :]

print rois

im_ind = rois[0]

roi = rois[1:]

im = im_blob[im_ind, :, :, :].transpose((1, 2, 0)).copy()

im += cfg.PIXEL_MEANS

im = im[:, :, (2, 1, 0)]

im = im.astype(np.uint8)

cls = labels_blob[i]

plt.imshow(im)

#print 'class: ', cls, ' overlap: ', overlaps[i]

#print count

plt.gca().add_patch(

plt.Rectangle((roi[0], roi[1]), roi[2] - roi[0],

roi[3] - roi[1], fill=False,

edgecolor='r', linewidth=3)

)

plt.show()

Python Matplotlib.pyplot plt 中文显示

话不多说,上代码 # -*- coding: UTF-8 -*- import matplotlib.pyplot as plt from matplotlib.font_manager import ...

python matplotlib.pyplot学习记录

matplotlib是python中很强大的绘图工具,在机器学习中经常用到 首先是导入 import matplotlib.pyplot as plt plt中有很多方法,记录下常用的方法 plt.p ...

python matplotlib.pyplot对图像进行绘制

imshow()是对图像进行绘制 imshow()函数格式为: matplotlib.pyplot.imshow(X, cmap=None) X: 要绘制的图像或数组. cmap: 颜色图谱(colo ...

python+matplotlib制作雷达图3例分析和pandas读取csv操作

1.例一 图1 代码1 #第1步:导出模块 import numpy as np import matplotlib.pyplot as plt from matplotlib import font ...

python matplotlib imshow热图坐标替换/映射

今天遇到了这样一个问题,使用matplotlib绘制热图数组中横纵坐标自然是图片的像素排列顺序, 但是这样带来的问题就是画出来的x,y轴中坐标点的数据任然是x,y在数组中的下标, 实际中我们可能期望坐 ...

python matplotlib 简单生成图

import numpy as np import pandas as pd from matplotlib import pyplot as plt data = pd.DataFrame([[1, ...

matplotlib 画动态图以及plt.ion()和plt.ioff()的使用

学习python的道路是漫长的,今天又遇到一个问题,所以想写下来自己的理解方便以后查看. 在使用matplotlib的过程中,常常会需要画很多图,但是好像并不能同时展示许多图.这是因为python可视 ...

Python matplotlib.pyplot

Customize the label, title, and ticks. Add Color to bubbles Add Text & Grid

【转】使用Python matplotlib绘制股票走势图

转载出处 一.前言 matplotlib[1]是著名的python绘图库,它提供了一整套绘图API,十分适合交互式绘图.本人在工作过程中涉及到股票数据的处理如绘制K线等,因此将matplotlib的使 ...

随机推荐

Yoshua Bengio 2016年5月11日在Twitter Boston的演讲PPT

Yoshua Bengio最新演讲:Attention 让深度学习取得巨大成功(46ppt) Yoshua Bengio,电脑科学家,毕业于麦吉尔大学,在MIT和AT&T贝尔实验室做过博士后研 ...

我的web框架设计

做了很久的web开发,学了webform和mvc自己总结了,觉得当下的构架还是有改进的可能的. 其实首先说下我的一些认识(个人认知,欢迎讨论,谢绝砸砖). 我觉得对计算机和数据的操作,本身就是一个单向 ...

wp7 BaseDictionary<TKey, TValue>

/// /// Represents a dictionary mapping keys to values./// /// /// &l ...

github 向导/介绍

环境:windows 7 64bit 阅读了http://guides.github.com的教程. 流程 git是协作版本管理的一种方法.工作流程是在一个主线基础上发展分支(branch),最后并入 ...

asp.net 获取客户机IP地址

/// ///get client IP /// /// public ...

2016计蒜之道复赛 菜鸟物流的运输网络 网络流EK

题源:https://nanti.jisuanke.com/t/11215 分析:这题是一个比较经典的网络流模型.把中间节点当做源,两端节点当做汇,对节点进行拆点,做一个流量为 22 的流即可. 吐槽 ...

flappy pig小游戏源码分析(3)——解剖util

这一节我们继续高歌猛进,如果对源码中有无论无何都理解不通的问题,欢迎和我交流,让我也学习一下,我的qq是372402487. 还是按照惯例看看我们的目录结构. 我们在前两节中已经分析了game.js, ...

金融量化分析【day112】:量化平台的使用-初始化函数

一.set_benchmark - 设置基准 1.实现代码 # 导入函数库 import jqdata #初始化函数,设定基准等等 def initialize(context): set_bench ...

sublime text 中 .vue文件中的scss语法无法高亮bug怎么解决

如题,在vuejs的单文件组件中,.vue 结尾的文件里面使用scss的时候,无法高亮.因为 sublime默认是不带sass语法高亮的,安装 sublime SCSS语法高亮包即可. 方法如下:   ...

mac nginx 安装教程

eeking a satisfactory solution to create a local web server for programming in macOS with PHP and My ...

### 使用Python绘制矩形 #### 使用OpenCV绘制矩形 通过`cv2.rectangle()`方法可以在图像上绘制矩形。此函数接收多个参数,包括要绘制的图像、左上角坐标、右下角坐标、颜色(BGR格式)、线条粗细等。 ```python import cv2 import numpy as np # 创建一个黑色背景的空白图像 img = np.zeros((512, 512, 3), dtype=np.uint8) # 定义矩形的位置和属性 pt1 = (100, 100) # 左上角点 pt2 = (400, 400) # 右下角点 color = (0, 255, 0) # 颜色为绿色 thickness = 2 # 线条厚度 # 绘制矩形 cv2.rectangle(img, pt1, pt2, color, thickness) # 显示结果 cv2.imshow('Rectangle', img) cv2.waitKey(0) cv2.destroyAllWindows() ``` 这段代码展示了如何使用OpenCV库中的`rectangle()`函数来创建并显示带有矩形轮廓的窗口[^1]。 #### 使用Matplotlib绘制矩形 对于不需要操作具体像素的应用场景,可以采用更简洁的方式——借助于Matplotlib这个强大的可视化库来进行图形化展示: ```python from matplotlib.patches import Rectangle import matplotlib.pyplot as plt fig, ax = plt.subplots() rect = Rectangle((-1,-1), width=2, height=2, edgecolor='red', facecolor="none") ax.add_patch(rect) plt.xlim([-3, 3]) plt.ylim([-3, 3]) plt.gca().set_aspect('equal') plt.show() ``` 这里定义了一个红色边框但内部透明(`facecolor="none"`) 的矩形,并将其添加到了当前子图中;最后调整了轴的比例使其保持一致以便更好地观察所绘制出来的矩形形状[^2]。 #### 基础ASCII字符输出矩形 如果只是简单地想要在控制台打印出矩形图案,则可以通过字符串拼接的方式来完成这一目标: ```python def draw_rectangle(width, height): top_bottom_line = '*' * width + '\n' middle_lines = ('*' + ' '*(width-2) + '*\n') * (height-2) rectangle_str = top_bottom_line + middle_lines + top_bottom_line print(rectangle_str) draw_rectangle(7, 5) ``` 上述脚本会构建一个小巧简单的实心矩形结构,在命令行界面里呈现出由星号组成的封闭区域[^3].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值