我正在编写一个脚本,用于保存具有多种格式样式的图形,其中包含图例文本的字体大小。
rcparams中的legend.labelspacing或matplotlibrc文件以字体大小的分数指定标签间距,因此我可能希望在更改字体大小时更改实际间距。但是,由于实际间距可能是在首次创建图例时计算的,因此对现有图例文本对象的字体大小的任何后续更改都不会影响标签间距。有没有办法在更改现有图例标签对象的字体大小后更新图例标签间距?总之,这就是我想做的事情:
有没有办法在不更改rcparams然后重建图形的情况下执行此操作?
答案 0 :(得分:6)
只需使用labelspacing参数调用legend(),这是一个示例:
import pylab as pl
pl.plot([0,1],[0,1], label="a")
pl.plot([0,2],[0,2], label="b")
pl.legend()
pl.savefig("p1.png")
pl.legend(labelspacing=2)
pl.savefig("p2.png")
重用参数:
import pylab as pl
pl.plot([0,1],[0,1], label="a")
pl.plot([0,2],[0,2], label="b")
params = dict(loc="right", prop=dict(size=9))
pl.legend(**params)
pl.savefig("p1.png")
params["labelspacing"] = 2
pl.legend(**params)
pl.savefig("p2.png")