如何在matplotlib barh plot中删除空的“填充”?

时间:2016-02-05 13:10:31

标签: python python-2.7 matplotlib

我想删除/缩小/tag/$hashtag图中空的顶部和底部padding空格(标有红色方块)。我该怎么办?

以下是我的情节示例: enter image description here

以下是代码:

matplotlib.pyplot.barh

随机测试数据:

import matplotlib.pyplot as plt
from collections import Counter
import random


values = sorted(tags_dic.values())
labels = sorted(tags_dic, key=tags_dic.get)
bars = plt.barh(range(len(tags_dic)), values, align='center')
plt.yticks(range(len(tags_dic)), labels)
plt.xlabel('Count')
plt.ylabel('POS-tags')
plt.grid(True)
random.shuffle(COLLECTION)
for i in range(len(tags_dic)):
    bars[i].set_color(COLLECTION[i])
    print COLLECTION[i]
plt.show()

1 个答案:

答案 0 :(得分:4)

您可以使用plt.margins来控制此项。要完全删除顶部和底部的空白,可以设置:

plt.margins(y=0)

顺便说一句,我认为您的绘图脚本中也有错误:您对字典中的值进行排序,但不对键进行排序,因此您最终会得到与其代表的值不对应的标签

我认为你可以解决这个问题如下:

labels = sorted(tags_dic, key=tags_dic.get)
plt.yticks(range(len(tags_dic)), labels)