This question already has answers here:
Cleanest way to hide every nth tick label in matplotlib colorbar?
(4 个回答)
2年前关闭。
我正在尝试使用 DataFrame.plot.bar() 来绘制一系列数据。
我正在寻找一种方法来只 显示第 n 个 xlabel 而 保留我所有当前的数据
我试过的:
我通读了 axes documentation 并找到了一些有用的功能。
我的尝试:
我需要什么帮助:
这是显示每个第 n 个 xlabel 的正确方法吗?如果是这样,我已经有了位置,我怎样才能获得实际的刻度,以便我可以设置每个位置的可见性。
如果这不是正确的方法,那么正确的方法是什么?
这是生成的图表
要更改 x 轴标签,因此仅显示 5 分之一,请使用
这产生了这个情节:
(4 个回答)
2年前关闭。
我正在尝试使用 DataFrame.plot.bar() 来绘制一系列数据。
plot = myData.plot.bar()
但是,有很多数据,因此 Xaxis 彼此重叠。我正在寻找一种方法来只 显示第 n 个 xlabel 而 保留我所有当前的数据
我试过的:
我通读了 axes documentation 并找到了一些有用的功能。
我的尝试:
ticks = plot.get_xticks()
for tick in ticks:
if tick%5 != 0:
tick.set_visible(False)
问题:get_xticks()
返回位置,而不是实际刻度。所以 set_visible 会导致错误。我需要什么帮助:
这是显示每个第 n 个 xlabel 的正确方法吗?如果是这样,我已经有了位置,我怎样才能获得实际的刻度,以便我可以设置每个位置的可见性。
如果这不是正确的方法,那么正确的方法是什么?
最佳答案
如果您只是想关闭刻度标签,则可以通过枚举 .get_xticklabels()
并关闭要隐藏的标签的可见性来实现。
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 轴标签,因此仅显示 5 分之一,请使用
enumerate
而不是标签位置的值来确定是否应显示。for i, t in enumerate(ax.get_xticklabels()):
if (i % 5) != 0:
t.set_visible(False)
这产生了这个情节:
关于python - Pandas 绘图栏 : Show every nth xlabel,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56095446/
10-11 19:33