我想使用matplotlib创建一个图形,在这里我可以显式地指定轴的大小,即我想设置轴边框的宽度和高度。
我已经找遍了所有地方,我找不到解决这个问题的办法。我通常会发现如何调整整个图形(包括刻度和标注)的大小,例如使用fig, ax = plt.subplots(figsize=(w, h))
这对我来说非常重要,因为我希望轴的比例为1:1,即纸上的1个单位等于现实中的1个单位。例如,如果xrange为0到10,主刻度= 1,x轴为10厘米,则1个主刻度= 1厘米。我将把这个图保存为pdf格式导入到一个乳胶文档中。
This question提出了一个类似的主题,但答案并不能解决我的问题(使用plt.gca().set_aspect('equal', adjustable='box')
代码)
从另一个question中,我看到可以得到轴的大小,但不能明确地修改它们。
任何想法,我可以设置轴框的大小,而不仅仅是图的大小。图形尺寸应与轴线尺寸相适应。
谢谢你,谢谢
对于那些熟悉pgfplots的人来说,它会喜欢有一些类似于scale only axis
的选项(例如,请参见here)。
4条答案
按热度按时间ftf50wuq1#
坐标轴大小由图形大小和图形间距决定,可以使用
figure.subplots_adjust()
进行设置。相反,这意味着您可以通过设置图形大小(考虑图形间距)来设置轴大小:字符串
iqih9akk2#
Matplotlib似乎有一些帮助类,允许您定义具有固定大小Demo fixed size axes的轴
i7uaboj43#
我发现ImportanceofBeingErnests的答案修改了图的大小来调整轴的大小,这与我用来生成出版准备图的特定matplotlib设置提供了不一致的结果。轻微的错误是目前在最终的数字大小,我无法找到一种方法来解决这个问题与他的方法。对于大多数用例,我认为这不是一个问题,但是当组合多个PDF进行发布时,错误是显而易见的。
为了代替开发一个最小的工作示例来找到我在图形大小调整方法中遇到的真实的问题,我找到了一个使用固定轴大小的工作,该工作利用了分频器类。
字符串
值得注意的事情:
set_axes_locator()
后,将中断tight_layout()
函数。tyg4sfes4#
使用图add_axes的另一种方法是相当精确的。我已经包括1厘米网格以及
字符串
结果:
的数据