matplotlib中的多行x刻度标签 [英] Multiple lines of x tick labels in matplotlib
本文介绍了matplotlib中的多行x刻度标签的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试绘制类似于此excel示例的图:
I'm trying to make a plot similar to this excel example:
我想知道x刻度标签上是否仍然有第二层(例如"5年统计摘要").我知道我可以使用\n
制作多行刻度标签,但我希望能够独立移动两个级别.
I would like to know if there is anyways to have a second layer on the x tick labels (e.g. "5 Year Statistical Summary"). I know I can make multi-line tick labels using \n
but I want to be able to shift the two levels independently.
推荐答案
这很接近:
fig = plt.figure( figsize=(8, 4 ) )
ax = fig.add_axes( [.05, .1, .9, .85 ] )
ax.set_yticks( np.linspace(0, 200, 11 ) )
xticks = [ 2, 3, 4, 6, 8, 10 ]
xticks_minor = [ 1, 5, 7, 9, 11 ]
xlbls = [ 'background', '5 year statistical summary', 'future build',
'maximum day', '90th percentile day', 'average day' ]
ax.set_xticks( xticks )
ax.set_xticks( xticks_minor, minor=True )
ax.set_xticklabels( xlbls )
ax.set_xlim( 1, 11 )
ax.grid( 'off', axis='x' )
ax.grid( 'off', axis='x', which='minor' )
# vertical alignment of xtick labels
va = [ 0, -.05, 0, -.05, -.05, -.05 ]
for t, y in zip( ax.get_xticklabels( ), va ):
t.set_y( y )
ax.tick_params( axis='x', which='minor', direction='out', length=30 )
ax.tick_params( axis='x', which='major', bottom='off', top='off' )
这篇关于matplotlib中的多行x刻度标签的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文