python - 如何在matplotlib barh图中删除空的 "padding"?

标签 python python-2.7 matplotlib

我想删除/减少 padding 图中空的顶部和底部 matplotlib.pyplot.barh 空间(用红色方块标记)。我该怎么做?

这是我的情节的一个例子:
enter image description here

这是代码:

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()

随机测试数据:
tags_dic = Counter({u'NNP': 521, u'NN': 458, u'IN': 450, u'DT': 415, u'JJ': 268, u'NNS': 244, u'VBD': 144, u'CC': 138, u'RB': 103, u'VBN': 98, u'VBZ': 69, u'VB': 65, u'TO': 64, u'PRP': 57, u'CD': 51, u'VBG': 50, u'VBP': 48, u'PRP$': 26, u'POS': 26, u'WDT': 20, u'WP': 20, u'MD': 19, u'EX': 11, u'WRB': 10, u'JJS': 7, u'RP': 6, u'JJR': 6, u'RBR': 5, u'NNPS': 5, u'FW': 4, u'SYM': 1, u'UH': 1})

最佳答案

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

plt.margins(y=0)

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

我认为您可以按如下方式解决此问题:
labels = sorted(tags_dic, key=tags_dic.get)
plt.yticks(range(len(tags_dic)), labels)

关于python - 如何在matplotlib barh图中删除空的 "padding"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35225097/

相关文章:

python - 如何完全改变 tkinter.ttk Treeview 的背景颜色

org-mode 中的 python 代码块在 emacs24.3 中没有持久 session

python - CountVectorizer 在短词上引发错误

python - Django-registration 重新发送带有新代码的激活邮件

Python测试客户端是否存在

Python ndimage : Converting an existing ndarray into greyscale

python - 如何在matplotlib中添加箱线图来散布数据

Python 3D 点插值

python - 使用 pandas/matplotlib/python,我无法将 csv 文件可视化为集群

python - 如何在远程机器上保存实时数据图?