【发布时间】:2011-01-25 23:07:25
【问题描述】:
比如说,matplotlib 中有 3 行子图,其中一行的 xlabels 可以与下一行的标题重叠。必须摆弄pl.subplots_adjust(hspace),这很烦人。
是否有 hspace 的配方可以防止重叠并适用于任何 nrow?
""" matplotlib xlabels overlap titles ? """
import sys
import numpy as np
import pylab as pl
nrow = 3
hspace = .4 # of plot height, titles and xlabels both fall within this ??
exec "\n".join( sys.argv[1:] ) # nrow= ...
y = np.arange(10)
pl.subplots_adjust( hspace=hspace )
for jrow in range( 1, nrow+1 ):
pl.subplot( nrow, 1, jrow )
pl.plot( y**jrow )
pl.title( 5 * ("title %d " % jrow) )
pl.xlabel( 5 * ("xlabel %d " % jrow) )
pl.show()
我的版本:
- matplotlib 0.99.1.1,
- Python 2.6.4,
- Mac OSX 10.4.11,
- 后端:
Qt4Agg(TkAgg=> Tkinter 回调异常)
(对于许多额外的点,任何人都可以按照 Tcl/Tk 书中第 17 章“打包器”的内容概述 matplotlib 的打包器/间隔器的工作原理吗?)
【问题讨论】:
-
您可能想在 matplotlib bugtracker sourceforge.net/tracker/?group_id=80706 上为此提交一个错误/愿望清单条目@
-
您在
pl.show()之前尝试过pl.tight_layout()以获得“自动”解决方案吗? -
@Sebastian Raschka,“用户警告:tight_layout:回退到 Agg 渲染器”,mac 上的 matplotlib 1.4.3。 (问题是 5 年前的问题。)
-
@denis 哎呀,不好意思,问的时候真的没注意数据……
标签: python matplotlib