python行与行之间必须对齐_如何将matplotlib图例中的行与两列对齐

可以将handleheight关键字参数设置为一个足够大的数字,使句柄的高度大于字体占用的空间。这会使文本看起来对齐。这样做可能需要将labelspacing设置为一个小数字,以免使图例显得太大。plt.legend(fontsize='xx-large', ncol=2,handleheight=2.4, labelspacing=0.05)

pcewZ.png

如图所示,这种方法的缺点是行相对于文本的基线向上移动。这可能取决于使用情况,如果这是可以接受的或不。

如果不是这样的话,我们需要更深入地挖掘。下面的子类HandlerLine2D(这是行的处理程序),以便为行设置稍微不同的位置。根据图例的总大小、字体大小等,需要调整SymHandler类中的数字xx。from matplotlib.legend_handler import HandlerLine2D

import matplotlib.lines

class SymHandler(HandlerLine2D):

def create_artists(self, legend, orig_handle,xdescent, ydescent, width, height, fontsize, trans):

xx= 0.6*height

return super(SymHandler, self).create_artists(legend, orig_handle,xdescent, xx, width, height, fontsize, trans)

leg = plt.legend(handler_map={matplotlib.lines.Line2D: SymHandler()},

fontsize='xx-large', ncol=2,handleheight=2.4, labelspacing=0.05)

Rd1ga.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值