matplotlib.pyplot.axis 画faster-rcnn的anchors

2023-05-16

 

参考来源:https://matplotlib.org/api/_as_gen/matplotlib.pyplot.axis.html

心血来潮,想用matplotlib画一下faster-rcnn中生成的基础anchors,如下,

base_anchors = [[ -84.,-40., 99., 55.],
 [-176.,-88.,191.,103.],
 [-360. -184.,375.,199.],
 [ -56.,-56., 71., 71.],
 [-120. -120.,135.,135.],
 [-248. -248.,263.,263.],
 [ -36.,-80., 51., 95.],
 [ -80. -168., 95.,183.],
 [-168. -344.,183.,359.]]

本来觉得应该很简单,但是始终画不出来...坐标轴范围始终是0-1...

死磕之下终于攻破...主要是axis参数设置问题,这里简单讲解一下其使用方法,避免再入坑...

1. 调用方式

xmin, xmax, ymin, ymax = axis()
xmin, xmax, ymin, ymax = axis(xmin, xmax, ymin, ymax)
xmin, xmax, ymin, ymax = axis(option)
xmin, xmax, ymin, ymax = axis(**kwargs)
xmin, xmax, ymin, ymax = axis(str)

2. 参数

xmin, ymin, xmax, ymax 坐标轴的最大最小值
str‘on’

显示坐标轴

‘off’隐藏坐标轴
'equal'    调整坐标轴进行缩放
‘scaled’调整画布长宽进行缩放
'tight'设置坐标轴取值恰好满足数据取值范围
'auto'自动调整刻度
‘image’'scaled' with axis limits equal to data limits.(感觉和auto,tight差不多,不知道怎么翻译...)
'square'与scale类似,但要求xmax-xmin = ymax-ymin

3 代码及结果展示

# -*- coding:utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as patches

#a的每一行为一个anchor
#四个值分别为矩形对角线两顶点坐标
base_anchors = [[ -84.,-40., 99., 55.],
 [-176.,-88.,191.,103.],
 [-360. -184.,375.,199.],
 [ -56.,-56., 71., 71.],
 [-120. -120.,135.,135.],
 [-248. -248.,263.,263.],
 [ -36.,-80., 51., 95.],
 [ -80. -168., 95.,183.],
 [-168. -344.,183.,359.]]
fig = plt.figure() 
axes = fig.add_subplot(111) 

for i in range(9):
	p = a[i]
	rec = patches.Rectangle((p[0], p[1]),p[2]-p[0], p[3]-p[1], fill=False, linewidth=1, edgecolor='r', facecolor='none')
	axes.add_patch(rec)

#axes.axis('equal')
#axes.axis('scaled')
#axes.axis('tight')
#axes.axis('auto')
#plt.title('Base anchors')
'''
plt.xlim、plt.ylim 设置横纵坐标轴范围 
plt.xlabel、plt.ylabel 设置坐标轴名称 
plt.xticks、plt.yticks设置坐标轴刻度
'''
#plt.xlim(-600, 600)
#plt.ylim(-600, 600)

plt.show()

 str参数效果(不设置时,坐标轴始终为0-1.0),从左到右边分别为equal,scaled, tight, auto

上图scaled参数的效果明显与其它三种不同,它会自动将画布缩放为正方形。

equal和scaled区别在改变窗口大小时候区别更加明显,如下。

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

matplotlib.pyplot.axis 画faster-rcnn的anchors 的相关文章

  • 如何消除 matplotlib 轴的相对偏移

    当我尝试对具有足够大数字的范围进行绘图时 我得到一个所有刻度都有相对偏移的轴 例如 plot 1000 1001 1002 1 2 3 我在横坐标轴上得到这些刻度 0 0 0 5 1 0 1 5 2 0 1e3 问题是如何删除 1e3并得到
  • 我可以在 matplotlib 中的绘图左侧放置一个垂直颜色条吗?

    来自颜色条方法的 matplotlib 命令摘要 http matplotlib org api pyplot api html highlight colorbar matplotlib pyplot colorbar我知道关键字参数or
  • matplotlib:渲染到缓冲区/访问像素数据

    我想使用 matplotlib 生成的图作为 OpenGL 中的纹理 到目前为止 我遇到的 matplotlib 的 OpenGL 后端要么不成熟 要么已经停止使用 所以我想避免使用它们 我当前的方法是将图形保存到临时 png 文件中 并从
  • 在 4K 屏幕上使用 Matplotlib 和 TKAgg 或 Qt5Agg 后端

    我在 Ubuntu 16 04 上使用 Matplotlib 2 0 和 Python 3 6 来创建数据图 电脑显示器的分辨率为 4k 分辨率为 3840x2160 绘图数字看起来非常小 字体也很小 我已经尝试过TKAgg and Qt5
  • 带有 twinx() 的辅助轴:如何添加到图例

    我有一个带有两个 y 轴的图 使用twinx 我还给线条添加了标签 并想用legend 但我只成功获取图例中一个轴的标签 import numpy as np import matplotlib pyplot as plt from mat
  • 使用 Julia Plots 访问后端特定功能

    Plots简单而强大 但有时我想对情节的各个元素有更多的控制 以微调其外观 是否可以直接更新后端的绘图对象 例如 对于默认的pyplot后端 我试过了 using Plots p plot sin p o axes 1 xaxis set
  • 为什么 matplotlib 底图没有绘制地图中某些区域的颜色?

    下面的代码应该为越南的所有州着色 import pandas as pd import matplotlib pyplot as plt from mpl toolkits basemap import Basemap fig ax plt
  • 如何在seaborn中绘制离散变量的分布图

    当我画画的时候displot对于离散变量 分布可能不像我想象的那样 例如 We can find that there are crevices in the barplot so that the curve in kdeplot is
  • Matplotlib:检查空图

    我有一个循环加载并绘制一些数据 如下所示 import os import numpy as np import matplotlib pyplot as plt for filename in filenames plt figure i
  • 在 Python 的 matplotlib 中使用时间序列的百分位数设置颜色渐变

    我有一个时间序列 在一年的数组大小 365 10000 中 变量的每日值将超过 10 000 个 因为我将拥有大量数据 许多变量的许多时间序列 所以我希望仅保存百分位数 0 10 20 90 100 并在稍后的图中使用它们来设置颜色渐变显示
  • pcolormesh 的输入格式

    我正在尝试使用底图制作热量 强度图 我的输入是当时的一组纬度 经度和强度 数据集如下所示 lat 0 lon 0 intensity 0 lat 1 lon 1 intensity 1 lat n lon n intensity n 在每个
  • IPython自动开启matplotlib交互模式

    我遇到了 IPython 的一些新奇怪行为 我只需重新安装我的 miniconda 所以我现在有了新的 IPython 和 Matplotlib 版本 事实证明 IPython 会自动将 matplotlib 切换到交互模式 这具有令人讨厌
  • matplotlib 中没有边缘的阴影矩形补丁

    当尝试将带有填充图案的矩形面片添加到绘图中时 在指定填充值时似乎无法将关键字参数 edgecolor 设置为 none 换句话说 我试图添加一个没有边缘但有图案填充的阴影矩形 这似乎不起作用 仅当我还允许在矩形面片周围绘制边缘时 该图案才会
  • 自定义seaborn jointplot中的轴标签

    我似乎陷入了一个相对简单的问题 但在经过一小时的搜索和大量的实验后无法解决它 我有两个 numpy 数组x and y我正在使用seaborn的联合图来绘制它们 sns jointplot x y 现在我想分别将 x 轴和 y 轴标记为 X
  • 需要FTP文件而不存储解释器文件通过Python保存在本地

    我正在尝试做一些图像解释器并尝试将它们直接存储到 FTP 服务器 但我的步骤是从本地文件夹上传图像 然后将其转换为蒙版图像 然后它将获得最终输出 但是在我的蒙版和最终输出场景中 临时图像被保存在本地 这是我不想要的 但如果不将图像存储在本地
  • 使用自定义颜色渐变填充两条线之间的区域

    我正在做一项几乎已经完成的作业 但我想对其添加一些小改动 尝试使用基于温度的颜色图而不是简单的颜色来填充两条线之间的区域 绘制线条的方式本质上使它们成为独立的实体 所以我知道我可能需要两个彼此相遇或重叠的颜色图来完成此任务 但我不太确定如何
  • 绘制 Pandas OLS 线性回归结果

    我将如何绘制我从 pandas 进行的线性回归的线性回归结果 import pandas as pd from pandas stats api import ols df pd read csv Samples csv index col
  • 尽管 ioff() 和 matplotlib.use('Agg'),Pyplot“无法连接到 X 服务器 localhost:10.0”

    我有一段代码 它被不同的函数调用 为我执行一些计算 然后将输出绘制到文件中 鉴于整个脚本可能需要一段时间才能运行更大的数据集 并且由于我可能想在给定时间分析多个数据集 所以我开始它screen然后断开连接并关闭我的腻子会话 并在第二天再检查
  • 使用 Matplotlib、PyQt 和 Threading 进行实时绘图导致 python 崩溃

    我一直在努力研究我的 Python 应用程序 但找不到任何答案 我有 PyQT GUI 应用程序 它使用 Matplotlib 小部件 GUI 启动一个新线程来处理 mpl 小部件的绘图 恐怕我现在通过从另一个线程访问 matplotlib
  • 如何使用google colab在jupyter笔记本中显示GIF?

    我正在使用 google colab 想嵌入一个 gif 有谁知道如何做到这一点 我正在使用下面的代码 它并没有在笔记本中为 gif 制作动画 我希望笔记本是交互式的 这样人们就可以看到代码的动画效果 而无需运行它 我发现很多方法在 Goo

随机推荐