我尝试将子图的x标签(使用GridSpec创建)旋转45度。我尝试使用axa.set_xticks()
和axa.set_xticklabels
,但似乎不起作用。Google也没有帮助,因为大多数关于标签的问题都是关于正常图,而不是子图。
代码如下:
width = 20 # Width of the figure in centimeters
height = 15 # Height of the figure in centimeters
w = width * 0.393701 # Conversion to inches
h = height * 0.393701 # Conversion to inches
f1 = plt.figure(figsize=[w,h])
gs = gridspec.GridSpec(1, 7, width_ratios = [1.5, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0])
axa = plt.subplot(gs[0])
axa.plot(dts, z,'k', alpha=0.75, lw=0.25)
#axa.set_title('...')
axa.set_ylabel('TVDSS ' + '$[m]$', fontsize = '10' )
axa.set_xlabel('slowness 'r'$[\mu s/m]$', fontsize = '10')
axa.set_ylim(245, 260)
axa.set_xlim(650, 700)
axa.tick_params(labelsize=7)
axa.invert_yaxis()
axa.grid()
任何帮助将不胜感激!
3条答案
按热度按时间9nvpjoqh1#
你可以通过多种方式做到这一点:
下面是一个使用
tick_params
的解决方案:下面是使用
set_xticklabels
的另一个解决方案:Here是利用
set_rotation
的第三种解决方案:wgeznvg72#
您可以使用此行设置记号标签的旋转属性:
setp
是一个设置多个艺术家(本例中为所有ticklabels)属性的实用函数。顺便说一句:matplotlib中的 'normal' 和subplot没有区别。两者都只是Axes对象。唯一的区别是大小和位置以及它们在同一图中的数量。
9rygscc13#
只是想添加我在matplotlib git discussion page上找到的另一个解决方案:
ax[your_axis].tick_params(axis='x', rotation=90)
您可以通过传入特定的参数来指定所需的轴。与接受的答案相比,此方法的优点是您可以控制将此更改应用于哪个轴。Other parameters can be found here