如何操纵pyplot直方图xtick标签?

时间:2017-02-03 09:58:17

标签: python matplotlib histogram

我绘制直方图,从'input.txt'读取值。

f=np.recfromtxt('input.txt')
plt.hist(f[:,0],bins=[1E+27,1E+28,1E+29,1E+30, 1E+31,1E+32,1E+33])
plt.xlabel('x-axis label',fontsize=30)
plt.ylabel('Number of Sources',fontsize=30, style='italic')
plt.gca().set_xscale("log")
plt.xticks([1E+27,1E+28,1E+29,1E+30, 1E+31,1E+32,1E+33], labels, align="center" )
plt.tick_params(labelsize=25,align='center' )
labels = ['','$10^{28}$','$10^{29}$','$10^{30}$','$10^{31}$','$10^{32}$','$10^{33}$']
plt.show()

但是尽管有align='center'命令,刻度标签仍然没有居中。有没有办法让他们居中?

1 个答案:

答案 0 :(得分:0)

我在这里看不到tick_params中的align参数 http://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.tick_params.html#matplotlib.axes.Axes.tick_params

而是使用set_xticklabels mehtod为X轴明确指定每个轴的刻度线对齐 (http://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.set_xticklabels.html#matplotlib.axes.Axes.set_xticklabels)并指定“ha”参数(水平对齐参数)'center'值。 set_yticklabels的工作原理基本相同