- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了一系列简单的灰度图像,并将它们绘制在网格中(不幸的是,无法上传图像,因为我的声誉不够高:()。
伪代码是
# Define matplotlib PyPlot object
nrow = 8
ncol = 12
fig, axes = plt.subplots(nrow, ncol, subplot_kw={'xticks': [], 'yticks': []})
fig.subplots_adjust(hspace=0.05, wspace=0.05)
# Sample the fine scale model at random well locations
for ax in axes.flat:
plot_data = # some Python code here to create 2D grey scale array...
# ... create sub-plot
img = ax.imshow(plot_data, interpolation='none')
img.set_cmap('gray')
# Display the plot
plt.show()
最佳答案
简短的回答
您可能想调用:
ax.imshow(..., aspect='auto')
imshow
默认情况下,将在调用时将轴的纵横比设置为 1。这将覆盖您在创建轴时指定的任何方面。
aspect
在 matplotlib 中是指数据坐标中 xscale 和 yscale 的比例。它不直接控制轴的宽度和高度的比率。
adjustable
参数)。 axes_grid
之类的内容会在绘制时更改此设置以绕过此限制。)
aspect
和
adjustable
参数,轴将在其给定范围内收缩。
aspect
设置)将可以独立更改,从而扭曲圆圈:
adjustable='box'
但是,如果设置了绘图的纵横比(默认情况下
imshow
将强制纵横比为 1),轴将调整轴外侧的大小以将 x 和 y 数据比率保持在指定的方面。
aspect
绘图的方面是 x 和 y 数据尺度的方面。这不是情节的宽度和高度的方面。因此,如果
aspect
是
1
,圆永远是圆。
fig, ax = plt.subplots()
# Plot circle, etc, then:
ax.set(xlim=[0, 10], ylim=[0, 20], aspect=1)
默认情况下,
adjustable
将是
"box"
.让我们看看会发生什么:
adjustable
Axes 的参数设置为默认值
"box"
,Axes 在其最大空间内收缩。
adjustable="box"
, 使用 adjustable="box-forced"
相反。 anchor
的轴。例如ax.set_anchor('NE')
让它保持“固定”到“绿色框”的右上角,因为它会调整其大小以保持纵横比。 adjustable="datalim"
adjustable
的另一个主要选项是
"datalim"
.
aspect
.
aspect=1, adjustable='datalim'
.请注意,不遵守 y 限制:
imshow
有什么关系? ?
imshow
被调用,它调用
ax.set_aspect(1.0)
,默认。因为
adjustable="box"
默认情况下,任何带有
imshow
的绘图将表现得像上面的第 3/4 张图片。
imshow(..., aspect='auto')
,绘图的纵横比不会被覆盖,图像将“挤压”以占据分配给轴的全部空间:
extent
kwarg 指定的内容,它们可能不是正方形),您可以省略
aspect='auto'
并将轴的可调参数设置为
"datalim"
相反。
ax.imshow(data, cmap='gist_earth', interpolation='none')
ax.set(adjustable="datalim")
plt.figaspect
对此非常方便。它只是生成一个元组
width, height
基于指定的纵横比或二维数组(它将从数组的形状中获取纵横比,而不是内容)。
aspect="auto"
,因为我们希望图像中的像素保持方形):
import numpy as np
import matplotlib.pyplot as plt
nrows, ncols = 8, 12
dx, dy = 1, 2
figsize = plt.figaspect(float(dy * nrows) / float(dx * ncols))
fig, axes = plt.subplots(nrows, ncols, figsize=figsize)
for ax in axes.flat:
data = np.random.random((10*dy, 10*dx))
ax.imshow(data, interpolation='none', cmap='gray')
ax.set(xticks=[], yticks=[])
pad = 0.05 # Padding around the edge of the figure
xpad, ypad = dx * pad, dy * pad
fig.subplots_adjust(left=xpad, right=1-xpad, top=1-ypad, bottom=ypad)
plt.show()
关于python - 更改 matplotlib 中子图的纵横比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32633322/
我正在使用 Make,并且有一个 makefile,它设置了一个变量,该变量的值需要我从父 makefile 覆盖。我尝试在父 makefile 中设置变量并使用 export 将其传递给子 make
全屏运行下面的代码片段并调整屏幕大小以查看最后一行中的图像如何堆叠/环绕。它们直接包裹在下一行的正中央。我希望它们向左环绕。 #instafeed{ text-align: center; } #
我在这个网站上找到了以下 jsfiddle,它 90% 回答了我的查询。 JSFiddle 但是我希望能够在内部 div 上包含边距。我已经尝试修改计算以考虑边距,但如果内部 div 不换行或溢出,我
我有 div(class name:xyz) 在其中插入小的 4 div (class name:ax )。我需要垂直插入前两个 div,第三个应该水平插入第一个,第四个应该垂直插入第三个。但是所有的
我有一些动态添加的 QWidgets,我想在它们发生变化时执行一些任务。 我想我不能使用 connect() 因为我还需要触发更改的 QWidget 的名称。 我如何才能同时查看更改了哪个 QWidg
我想在子操作中生成 HTML head 部分;而该页面还有许多其他子操作。 html head 部分取决于其他操作来确定应包含哪些 js/css 文件。不同的子 Action 可以共享同一个js/cs
我正在构建一个 Angular 7 应用程序。我想获取父 div 中某个 div 的“索引”或行。 我的标记如下所示: 我知道如果标记如下所示,我可以轻松做到这一点,但如果
如果我在 Ruby 中调用系统方法,它将在子 shell 中执行我的命令并输出它可以输出的所有内容。因此,如果我将其放入 file.rb 中: system 'vim' 然后运行 $ ruby
我可以对齐两个 div只需设置他们的 display至 inline-block并使用相同的 line-height如下图所示: 但是,我想要的是根据内部 div 的基线对齐两个嵌套 div,如下所示
我的父 Controller 上有一些属性,我希望我的子 Controller 可以访问这些属性。 我想像这样访问它: App.ApplicationController = Ember.Object
我有一个容器 div,里面有一个 SVG: 以及以下 CSS: svg { width: 100%; height: 1
我必须处理的事件目录是这样布置的:域包含许多 OU。这些 OU 之一被命名为“主 OU”。在这个 OU 中,有几个以全局办事处位置命名的 OU(即“芝加哥”“巴黎”)。 任何实际有血有肉的用户帐户都被
我在 NSBox 中有一个 NSTextView。我想每当 NSTextView 获得焦点时在 NSBox 周围绘制焦点环,并在 NSTextView 失去焦点时立即删除焦点环。 谢谢 最佳答案 为此
在下面的代码中,我有一个链接,其 div id 是“my-acc-hover-container”。当用户将鼠标悬停在该链接上时,一个新的部分将向下滑动,其中包含“Hello Guest”和“Logi
我正在使用 javafx 创建一个像 sqlyog 这样的应用程序。我的问题是我想添加数据库。无论何时添加,它都应该更新具有所有其他数据库的 TreeView 。出现创建数据库的对话框,给出名称并设置
我的 UIScrollView 中有几个屏幕的内容,它只能垂直滚动。 我想以编程方式滚动到包含在其层次结构中某处的 View 。 UIScrollView 移动以便 subview 位于 UIScro
我想更新已创建端口的 vif_model。我在 CLI 中使用以下命令 neutron port-update --binding:vif_model=avp 如何使用 neutron 的 pyth
我在一个程序中有两个查询。 查询1:我正在尝试在容器 div 的子 div 内水平对齐两个子 super 子分区。下面是我的代码,你能帮我解决这个问题吗?我已附上所需的输出。 查询2:从代码中你可以看
我在一个程序中有两个查询。 查询1:我正在尝试在容器 div 的子 div 内水平对齐两个子 super 子分区。下面是我的代码,你能帮我解决这个问题吗?我已附上所需的输出。 查询2:从代码中你可以看
我是一名优秀的程序员,十分优秀!