Python 熊猫绘图栏:显示每N个xlabel

Python 熊猫绘图栏:显示每N个xlabel,python,pandas,numpy,dataframe,matplotlib,Python,Pandas,Numpy,Dataframe,Matplotlib,我试图使用DataFrame.plot.bar()来绘制一系列数据 plot = myData.plot.bar() 但是,有大量数据,因此X轴相互重叠 我正在寻找一种方法,只显示n个xlabel,同时保留我的所有当前数据 我尝试过的: 我通读了一遍,发现了一些有用的函数 我的尝试: ticks = plot.get_xticks() for tick in ticks: if tick%5 != 0: tick.set_visible(False) 问题:get_x

我试图使用DataFrame.plot.bar()来绘制一系列数据

plot = myData.plot.bar()
但是,有大量数据,因此X轴相互重叠

我正在寻找一种方法,只显示n个xlabel,同时保留我的所有当前数据

我尝试过的: 我通读了一遍,发现了一些有用的函数

我的尝试:

ticks = plot.get_xticks()
for tick in ticks:
    if tick%5 != 0:
        tick.set_visible(False)
问题:
get_xticks()
返回位置,而不是实际的刻度。因此,设置_可见将导致错误

我需要帮助的是: 这是显示每个n个xlabel的正确方法吗?如果是这样,我已经有了位置,如何才能获得实际的刻度,以便设置每个刻度的可见性


如果这不是正确的方法,那么正确的方法是什么?

尝试
xaxis。改为获取_major\u ticks()

import matplotlib.pyplot as plt
import pandas as pd

df = pd.DataFrame({
    'name':['john','mary','peter','jeff','bill','lisa','jose'],
    'age':[23,78,22,19,45,33,20]
})

ax = df.plot(kind='bar',x='name',y='age')
xticks = ax.xaxis.get_major_ticks()
for i,tick in enumerate(xticks):
    if i%5 != 0:
        tick.label1.set_visible(False)

plt.show()

如果您只是想关闭记号标签,可以通过枚举
.getxticklabels()
并关闭要隐藏的记号标签的可见性来实现

import pandas as pd
import numpy as np
x = np.linspace(100, 500, 51, dtype=int)

mydata = pd.DataFrame({'A': np.histogram(np.random.normal(300, 100, 500), bins=x)[0]},
    index=x[:-1])

ax = mydata.plot.bar()
这是生成的图形

要更改x轴标签,使其仅显示1/5,请使用
枚举
而不是标签位置的值来确定是否应显示

for i, t in enumerate(ax.get_xticklabels()):
    if (i % 5) != 0:
        t.set_visible(False)
它生成了这个图:

我看错函数真是太傻了。。非常感谢。