如何让图表填满整个窗口

2023-12-07

我正在使用 QtDesigner 创建的应用程序中绘制图形,问题是,当显示图形时,图形空间和 mplwidget 空间之间会出现一个大的“灰色边缘”。这使得绘图变小,那么我如何删除在主窗口中显示图形时出现的这个大“灰色边框”?

I would like my graph to fill all the available space for the widget.graph showed in my application


简短的回答是:“使用fig.tight_layout()."

不过,让我对正在发生的事情进行更多解释。

您将看到图形和轴之间的相互作用。

A Figure包含一个或多个Axes(情节/子情节/等)。一切都画在人物身上Canvas(基本上,后端特定的像素缓冲区或矢量页)。


当你制作一个轴时,它不会填满整个图形。

单个坐标区的默认值是坐标区的左下角占图形宽度的 12.5% 和高度的 10%,并且坐标区占据图形宽度和高度的 90%。 (不对称是为了给左侧的刻度标签留出空间。)

你设置的位置是白框的范围如下图所示。它不包括刻度标签、标题、轴标签等(这就是轴没有填满整个图形的原因)。

The default will look like this: enter image description here

旁注:为了保持代码简短,我将使用pyplot自动生成接口Figure, Axes, and Canvas,而您可能会明确创建每个框架以与您的 GUI 框架一起使用。但结果是一样的。

每个轴实例所占图形的百分比是在创建时设置的。您可以明确指定它:

fig = plt.figure()
ax = fig.add_axes([left, bottom, width, height])

或者使用子图网格,可以更轻松地通过以下方式进行调整fig.subplots_adjust:

fig, axes = plt.subplots(nrows=2, ncols=2)
# Expand the grid of subplots out (Notice that 
fig.subplots_adjust(left=0.05, bottom=0.05, right=0.98, top=0.98)

What tight_layout所做的是计算刻度标签、标题、轴标签等的范围并确定参数fig.subplots_adjust这样所有的东西都将刚好在图形内。 (记住subplots_adjust并且轴位置规范控制“白框”的范围(实际轴本身),并且不包括刻度标签等)

因此,如果我们按照之前的做法进行操作:

fig, ax = plt.subplots()

然后调用:

fig.tight_layout()

我们会得到一些“边界”较少的东西,因为轴将占据图形的更大百分比:

enter image description here

如果你想控制“边框”的颜色,请使用fig.set_facecolor(color) (or fig.patch.set_facecolor).

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

如何让图表填满整个窗口 的相关文章

随机推荐

  • 在 Matlab 中在网格上绘制 3D 条形图

    我有一个矩阵 A 包含 50 行和 4 列 并且条目填充有整数 我的兴趣是根据这些数据构建堆叠的 3D 条形图 但是 使用 bar3 A stacked 创建一行 50 个条形图 而我希望将这些条形图绘制在大小为 5 垂直 x 10 水平
  • Oct 文件在 Octave 3.6.4 或 4.0.0 下运行,但不能同时运行

    我安装了两个版本的 Octave 通过包管理器 Linux Mint Debian 安装的版本 3 6 4 以及从源代码编译的版本 4 0 0 我在 octaverc 文件指向的文件夹中还有许多 oct 文件 我的问题是 4 0 0 版本无
  • 使用列表理解的带有谓词的自定义过滤器函数

    我需要开发自己的过滤功能 类似于filter在 Haskell 中工作 但使用列表理解和谓词 所以我会放lcFilter gt 3 1 2 3 4 5 6 10 444 3 在 ghci 中 它会打印所有大于 3 的数字 我的代码基于我擅长
  • 使用自定义类作为 Q_PROPERTY

    我有两节课TestA and TestB TestA延伸QObject 我已经设置了一些Q PROPERTY就这样 Q PROPERTY QString a string READ getString WRITE setString Q P
  • 如何从链接列表中抓取 HTML 表格

    我正在尝试使用 XML 包抓取一些表 选举数据 浏览后 我发现如何使用以下方法抓取单个网址 library XML url lt http www elecciones2011 gob ar paginas paginas dat99 DP
  • 空手道框架语言支持[重复]

    这个问题在这里已经有答案了 是否可以使用 KARATE 框架编写 C 实用程序 我已经使用 Java 编写了用于自动化 API 的实用程序函数 但现在我想用 C 编写实用程序函数 有没有办法做到这一点 空手道实际上是语言中立的并且使用Ghe
  • 无限循环错误EditText

    首先看我的代码 这些都在我的活动中 EditText text1 text2 Are defined corretly not problem text1 addTextChangedListener new MyTextWatcher o
  • android ffmpeg opengl es 渲染电影

    我正在尝试通过 NDK 渲染视频 以添加一些 sdk 中不支持的功能 我正在使用 FFmpeg 来解码视频 并可以通过 ndk 进行编译 并使用this作为起点 我修改了该示例 而不是使用 glDrawTexiOES 来绘制纹理 而是设置了
  • 为什么不在每次 Flask 启动时都生成密钥呢?

    使用会话时 Flask 需要一个密钥 在我见过的每个示例中 密钥都是以某种方式生成的 然后存储在源代码或配置文件中 永久保存的原因是什么 为什么不在应用程序启动时简单地生成它呢 app secret key os urandom 50 密钥
  • 在单独的线程中运行 Windows 窗体

    我正在处理在表单中运行控件 但是表单本身对我来说没有任何价值 我本质上希望表单运行任务并返回一个值 但是为此我想使用 AutoResetEvent 之类的东西仅在函数调用完成时返回 这显然会阻塞表单线程并使其不可能为了完成任务 我为我的项目
  • IOError: [Errno 13] 权限被拒绝:

    我构建此代码是为了专门识别 XML 文件负载并从这些文件中提取坐标 这是我的代码 from xml etree import ElementTree as ET import sys string os arcgisscripting gp
  • Slick2D 字体不起作用

    我有 Slick2D 库并用 Java 制作游戏 我一直想知道 只是一个简短的问题 如何在 Graphics 对象上设置字体以使用不同的字体进行绘制 我无法让它发挥作用 我认为它与 AngelCode 有关 但需要某种不是 tff 的格式
  • 这个程序中的 fread 有什么问题吗?

    我是 C 语言的中级学生 我正在尝试制作一个银行管理程序 但首先我需要制作一个登录程序 所以我创建了以下程序之一 由于我最近了解了C中的文件I O 并且对fread和fwrite不太了解 我有一个文件 data txt 其格式如下 用户1
  • 如何使用新的 2017 ifort 编译此 Fortran 代码?

    我有以下使用 2017 年之前的 ifort 编译的 Fortran 代码 program parallel m contains character 500 function PARALLEL message i ss character
  • Jackson:如何在不修改 POJO 的情况下将现有属性编辑为 JSON?

    我需要编辑 POJO 中 现有字段 的名称 而不是添加 extra field 是否可以使用下面参考的链接方法 请注意我不想使用 JsonProperty注解 要求是 我有一个 POJO 并且希望每次都使用不同的字段名称 而不需要更改 PO
  • 无法在 Heroku 中查看 Express/React 应用程序(同时未找到)

    我在 Heroku 中查看我的 Node Express React 项目时遇到问题 成功将我的项目推送到 Heroku 后 当我尝试在 Heroku 中查看我的应用程序时 出现 404 错误页面 Heroku 日志显示concurrent
  • 如何使用 CasperJS 移动 jquery-ui 滑块

    有什么办法可以移动jQuery UI 滑块 with CasperJS 我也发现了这个github问题在寻找一种可能性时 只需单击滑块的左侧或右侧即可移动handle 但这对我来说也不起作用 任何想法 移动滑块的工作原理如下 casper
  • 在 Firefox 中检查元素标尺

    我想知道是否有任何方法可以在 Firefox 中查看标尺 就像 Chrome 检查元素标尺一样 Chrome 显示您当前的宽度 即 宽度 填充 标尺悬停时的当前宽度 see below Chrome screenshot for ref 它
  • Android 未知命令“紧缩”

    我刚刚在 Mac OS X 中安装了 Eclipse 和 Android SDK 我将项目导入到 Eclipse 但在运行项目时出现未知命令 crunch 错误 我应该如何解决这个问题 请帮我 我刚刚更新 Android SDK Platf
  • 如何让图表填满整个窗口

    我正在使用 QtDesigner 创建的应用程序中绘制图形 问题是 当显示图形时 图形空间和 mplwidget 空间之间会出现一个大的 灰色边缘 这使得绘图变小 那么我如何删除在主窗口中显示图形时出现的这个大 灰色边框 I would l