python barh,python + matplotlib:barh图显示不完整的YTick标签-如何动态地将图区域向右移动以适合给定的YTickLabels?...

I'm using matplotlib to plot a barh plot to a file. Unfortunate, the YTickLaels are a bit too long and the plot area won't move to the right automatically. Is there a way to move the plot area to the right automatically so I won't have problems with incomplete YTickLabels?

The code I use is the following:

import matplotlib as mpl

mpl.use('Agg')

import matplotlib.pyplot as plt

D = {u'Label1':26, u'Label2 is longer than others': 17, u'Label3 is not so short either':30}

fig = plt.figure(figsize=(5.5,3),dpi=300)

ax = fig.add_subplot(111)

ax.grid(True,which='both')

bar = ax.barh(range(1,len(D)+1,1),D.values(),0.4,align='center')

plt.yticks(range(1,len(D)+1,1), D.keys(), size='small')

fig.savefig('D_bar.png')

Here is the output:

Mv60k.png

How can I fix this? Thanks

解决方案

Actually, there is an automatic way of doing this now: tight_layout.

In your case:

import matplotlib as mpl

mpl.use('Agg')

import matplotlib.pyplot as plt

D = {u'Label1':26, u'Label2 is longer than others': 17,

u'Label3 is not so short either':30}

fig = plt.figure(figsize=(5.5,3),dpi=300)

ax = fig.add_subplot(111)

ax.grid(True,which='both')

bar = ax.barh(range(1,len(D)+1,1),D.values(),0.4,align='center')

plt.yticks(range(1,len(D)+1,1), D.keys(), size='small')

fig.tight_layout() #

fig.savefig('D_bar.png')

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值