在MatPlotLib中更改顶部x轴的字体大小

时间:2017-06-12 03:52:27

标签: python python-2.7 matplotlib

出于某种原因,我想在顶部轴上绘制xtick标签。但是在下面的代码中无法更改fontsize参数。我绘制了两个子图作为参考。

f =plt.figure(figsize = (12,6))
ax1 = plt.subplot(211)


ax1.plot(np.arange(0,10,1),np.arange(0,10,1))

ax1.xaxis.set_ticks_position('both')
ax1.yaxis.set_ticks_position('both')

ax1.tick_params(axis='x', which='both', labeltop ='on',labelbottom = 'off')     
for tick in ax1.xaxis.get_major_ticks():
    tick.label.set_fontsize(24)


ax2 = plt.subplot(212)

ax2.plot(np.arange(0,10,1),np.arange(0,10,1))

ax2.xaxis.set_ticks_position('both')
ax2.yaxis.set_ticks_position('both')

ax2.tick_params(axis='x', which='both', labeltop ='off',labelbottom = 'on')     
for tick in ax2.xaxis.get_major_ticks():
    tick.label.set_fontsize(24)  

enter image description here

因此,如何更改x顶轴标签的字体大小?

任何建议都将不胜感激!

2 个答案:

答案 0 :(得分:0)

似乎使用ax1.xaxis.get_major_ticks()遍历标签只会为您提供底部标签的引用。要设置顶部和底部标签的字体大小,set_tick_params对我有效。

import numpy as np
import matplotlib.pyplot as plt

f =plt.figure(figsize = (12,6))
ax1 = plt.subplot(211)

ax1.plot(np.arange(0,10,1),np.arange(0,10,1))

ax1.xaxis.set_ticks_position('both')
ax1.yaxis.set_ticks_position('both')

ax1.tick_params(axis='x', which='both', labeltop ='on',labelbottom = 'off')
ax1.xaxis.set_tick_params(labelsize=24)

plt.show()

答案 1 :(得分:0)

使用关键字参数labelsize而不是遍历刻度。

f = plt.figure(figsize = (12, 6))

ax1 = plt.subplot(211)
ax1.plot(np.arange(0, 10, 1),np.arange(0, 10, 1))

ax1.xaxis.set_ticks_position('both')
ax1.yaxis.set_ticks_position('both')
ax1.tick_params(axis='x', which='both',    
                labeltop='on', labelbottom='off', labelsize=27)


ax2 = plt.subplot(212)
ax2.plot(np.arange(0, 10, 1), np.arange(0, 10, 1))

ax2.xaxis.set_ticks_position('both')
ax2.yaxis.set_ticks_position('both')
ax2.tick_params(axis='x', which='both', 
                labeltop='off', labelbottom='on', labelsize=14)