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)而不清除图形

    到目前为止我总是在这里找到帮助 我长期以来一直在寻找问题的解决方案 现在我可能已经失明了 我希望你能帮助我解决这个问题 我已经构建了一个 python 程序 可以绘制方向场 颤动 或流图 由于图表中可能还有其他数据 例如轨迹 我不能只是清除
  • 在 iPython/pandas 中绘制多条线会生成多个图

    我试图了解 matplotlib 的状态机模型 但在尝试在单个图上绘制多条线时遇到错误 据我了解 以下代码应该生成包含两行的单个图 import pandas as pd import pandas io data as web aapl
  • 根据第三个变量更改散点图中的标记样式

    我正在处理多列字典 我想绘制两列 然后根据第三列和第四列更改标记的颜色和样式 我很难改变 pylab 散点图中的标记样式 我的方法适用于颜色 不幸的是不适用于标记样式 x 1 2 3 4 5 6 y 1 3 4 5 6 7 m k l l
  • 在 matplotlib 中绘制多边形的并集[重复]

    这个问题在这里已经有答案了 我正在尝试绘制几个多边形的并集matplotlib 具有一定的 alpha 水平 我当前的代码在交叉点处颜色较深 有没有办法让交叉路口与其他地方的颜色相同 import matplotlib pyplot as
  • 使用seaborn绘制简单线图

    我正在尝试使用seaborn python 绘制ROC曲线 对于 matplotlib 我只需使用该函数plot plt plot one minus specificity sensitivity bs where one minus s
  • Jupyter Notebook:带有小部件的交互式绘图

    我正在尝试生成一个依赖于小部件的交互式绘图 我遇到的问题是 当我使用滑块更改参数时 会在前一个绘图之后完成一个新绘图 而我预计只有一个绘图会根据参数发生变化 Example from ipywidgets import interact i
  • 如何调整 Seaborn 箱线图中胡须的大小?

    我想在下面的箱线图中使须线更宽 import pandas as pd import numpy as np import seaborn as sns import matplotlib pyplot as plt data pd Dat
  • 用表达式分割轴标签

    我有一个带有包含表达式的长标签的图 我想将其分成两行 在表达式中添加 n 结果不符合预期 ylabel lt expression A very long label with text and n expression alpha bet
  • Matplotlib 与多处理冻结计算机

    我对 matplotlib 和多重处理有疑问 我启动第一个进程 在其中显示图像并选择一个区域 然后关闭图形 然后我启动另一个进程 在其中调用定期更新的图形函数 至此 一切正常 然后 当我尝试使用相同的图形功能启动另一个进程时 它冻结了我的整
  • 带表格格式的 Matplotlib 条形图

    我在图的底部添加了一个表格 但它存在许多问题 右边的内边距太多了 左边的填充太少 底部没有填充物 单元格对于其中的文本来说太小 该表距离图的底部太近 属于行名称的单元格的颜色未与条形图的颜色相匹配 我要发疯了 去摆弄这个 有人可以帮我解决这
  • Seaborn 中没有线性拟合的散点图

    我想知道是否有办法关闭seaborn中的线性拟合lmplot或者是否有一个等效函数可以生成散点图 当然 我也可以使用 matplotlib 但是 我发现 seaborn 中的语法和美学非常吸引人 例如 我想绘制以下情节 import sea
  • 如何在matplotlib中调整x轴

    I have a graph like this x轴上的数据表示小时 所以我希望x轴设置为0 24 48 72 而不是现在的值 很难看到 0 100 之间的数据 fig1 plt figure ax fig1 add subplot 11
  • 共享辅助轴

    如何使用 matplotlib 中的子图设置共享辅助轴 这是显示问题的最少代码 import numpy as np import matplotlib as mpl import matplotlib pyplot as plt def
  • 如何在 pylab/pyplot 中裁剪极坐标图

    我有一个极坐标图 其中theta从 0 到 pi 2 变化 所以整个情节都在第一季度 如下所示 pylab inline X linspace 0 pi 2 polar X cos 6 X 2 source schurov com http
  • 创建 matplotlib 注释后如何移动它们?

    我有以下代码来使用生成箭头ax annotate import numpy as np import matplotlib pyplot as plt fig ax plt subplots t np arange 0 0 5 0 0 01
  • Matplotlib 表 - 将不同的文本对齐方式分配给不同的列

    我正在创建一个两栏表 并希望文本尽可能接近 如何指定第一列右对齐 第二列左对齐 我尝试将常规 cellloc 设置到一侧 cellloc 设置文本对齐方式 from matplotlib import pyplot as plt data
  • 使用 PyQt 和 matplotlib 在可滚动小部件中显示多个绘图

    由于我没有得到答案this https stackoverflow com questions 12179893 creating a scrollable multiplot with pythons pylab我尝试用 PyQt 解决这
  • Matplotlib:如何有效地将大量线段着色为独立渐变

    Python 绘图库 如何有效地将大量线段着色为独立渐变 已经 阅读this https stackoverflow com questions 8500700 how to plot a gradient color line in ma
  • 带有两个滑块的交互式 matplotlib 绘图

    I used 绘图库创建一些图 这取决于 8 个变量 我想研究一下当我改变其中一些内容时情节如何变化 我创建了一些脚本来调用绘图库一个并生成不同的快照 稍后我将其转换成电影 这还不错 但有点笨拙 我想知道是否可以使用键盘按键与绘图重新生成进
  • Matplotlib 渲染日期、图像的问题

    我在使用 conda forge 的 Matplotlib v 3 1 3 和 python 3 7 时遇到问题 我拥有 Matplotlib 所需的所有依赖项 当我输入这段代码时 它应该可以工作 我得到了泼溅艺术 它基于此 YouTube

随机推荐