import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
ax = sns.distplot(np.random.randn(1000).cumsum(), kde=False, bins=20)
mids = [rect.get_x() + rect.get_width() / 2 for rect in ax.patches]
ax.set_xticks(mids)
plt.show()
如果刻度标签重叠太多,您可以旋转它们和/或调整其字体大小:ax.tick_params(axis='x', rotation=90, labelsize=8)
edges = [rect.get_x() for rect in ax.patches] + [ax.patches[-1].get_x() + ax.patches[-1].get_width()]
ticks = plt.gca().get_xticks()
ticks += 25
plt.xticks(ticks)
或者,如果您使用matplotlib绘制直方图,您可以直接获取bins:
x = np.random.rand(100)
# Matplotlib only
counts, bins, patches = plt.hist(x)
plt.xticks(bins + 25)