轴类-以给定单位明确设置轴的尺寸(宽度/高度)
我想使用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
选项类似的东西(例如,请参见此处)。
-
轴尺寸由图形尺寸和图形间距确定,可以使用设置
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()