Python Matplotlib:将x轴标签拟合到图形中以进行条形图打印

Python Matplotlib:将x轴标签拟合到图形中以进行条形图打印,python,matplotlib,Python,Matplotlib,我有一个分类数据的条形图;它包含173个不同的类别。我想将整个数据拟合到一个图形中。代码如下所示: series = self.mainDataFrame[cat_col].value_counts() columns = series.index.to_list() values = series.values y_pos = np.arange(len(columns)) plt.bar(y_pos, value

我有一个分类数据的条形图;它包含173个不同的类别。我想将整个数据拟合到一个图形中。代码如下所示:

        series = self.mainDataFrame[cat_col].value_counts()
        columns = series.index.to_list()
        values = series.values
        y_pos = np.arange(len(columns))
        plt.bar(y_pos, values, align='center', alpha=0.5)
        plt.xticks(y_pos, columns, fontsize='xx-small')
        plt.ylabel('Frequency')
        plt.title("Categorical Column:{0}".format(cat_col))
这是我得到的结果:


我主要想要两样东西;我希望x轴标签是可读的(每个标签都由三个字母组成),并且条不会那么杂乱,以至于其中一些被渲染为粘在一起。我试图扩大图形宽度,同时保持酒吧宽度相同,但我失败了。对于标签字体大小,这是我在使用
plt.xticks(y_pos,columns,fontsize='xx-small')
时得到的。如何使此图更具可读性?

可以旋转记号标签,请看,实际上,我也尝试过,但标签仍然重叠。您有多少条?你能提供一些玩具数据吗?也许你可以使用
plt.xlim
排除一半的x轴。它们的频率似乎不存在。轴上必须有每个标签吗?或者你可以忽略一些?