我在绘制多个子块时遇到问题。我想将子块的物理纵横比设置为固定值。 在我的示例中,在一个横向A4图形上有12个子块(4行3列)。所有子块都很好地放置在整个图形上,对于所有子块,高度几乎等于宽度。
但是如果我将我的图形布局更改为纵向,子块将垂直拉伸。 而这正是不应该发生的。我想有相同的高度和宽度的副地块的景观图。子批次的纵横比是否有可能保持不变?
提前谢谢你, 彼得
编辑: 我找到了一个解决办法。但这只适用于非对数轴。。。
aspectratio=1.0
ratio_default=(ax.get_xlim()[1]-ax.get_xlim()[0])/(ax.get_ylim()[1]-ax.get_ylim()[0])
ax.set_aspect(ratio_default*aspectratio)
实际上,你想要的很简单。。。您只需要确保轴上的
adjustable
设置为'box'
,并且轴的纵横比是设置好的(除了'auto'
之外的任何轴)。创建子块时,可以使用
adjustable
kwarg来完成此操作。或者,您可以在它们创建后通过调用ax.set_adjustable('box')
,或者通过调用ax.set_aspect(aspect, adjustable='box')
(其中aspect是'equal'
或一个数字)来执行此操作。现在,无论数字大小如何调整,子块都将保持相同的纵横比。
例如:
现在,比较顶部子块对大小调整的响应方式与底部子块的响应方式:
最初的情节
调整为垂直布局:
调整为水平布局:
你的解决办法对我有用。绘制数据后,我调用以下函数:
在对原始问题的编辑中,关于对数图的解决方案不起作用的评论的回复-您需要进行如下调整:
(半对数图的改编现在应该很明显了)
相关问题 更多 >
编程相关推荐