轴类 - 以给定单位明确设置轴的尺寸(宽度/高度)

Gab*_*iel 10 python plot axis axes matplotlib

我想用matplotlib创建一个图形,我可以明确指定轴的大小,即我想设置轴bbox的宽度和高度.

我到处都看了,我找不到解决方案.我通常会发现如何调整整个图形的大小(包括刻度和标签),例如使用fig, ax = plt.subplots(figsize=(w, h))

这对我来说非常重要,因为我希望轴的比例为1:1,即纸中的1个单位实际上等于1个单位.例如,如果xrange为0到10,主刻度线= 1且x轴为10cm,则1主刻度= 1cm.我将这个数字保存为pdf,将其导入乳胶文档.

这个问题带来了类似的话题,但答案并没有解决我的问题(使用plt.gca().set_aspect('equal', adjustable='box')代码)

从另一个问题我看到可以获得轴的大小,但不能明确地修改它们.

任何想法我如何设置轴盒大小而不仅仅是图形大小.图形尺寸应适应轴尺寸.

谢谢!

对于那些熟悉乳胶中的pgfplots的人来说,它会喜欢与scale only axis选项类似的东西(例如见这里).

Imp*_*est 17

轴尺寸由图形尺寸和图形间距决定,可以使用figure.subplots_adjust().相反,这意味着您可以通过设置数字大小设置轴大小来计算数字间距:

import matplotlib.pyplot as plt

def set_size(w,h, ax=None):
    """ w, h: width, height in inches """
    if not ax: ax=plt.gca()
    l = ax.figure.subplotpars.left
    r = ax.figure.subplotpars.right
    t = ax.figure.subplotpars.top
    b = ax.figure.subplotpars.bottom
    figw = float(w)/(r-l)
    figh = float(h)/(t-b)
    ax.figure.set_size_inches(figw, figh)

fig, ax=plt.subplots()

ax.plot([1,3,2])

set_size(5,5)

plt.show()
Run Code Online (Sandbox Code Playgroud)

  • 您可以添加颜色轴的轴(“ add_axes”),并使用“ subplots_adjust”为其留出一些空间。 (2认同)

小智 7

看来 Matplotlib 有帮助程序类,允许您定义具有固定大小的轴演示固定大小轴