Несколько строк меток x tick в matplotlib

Я пытаюсь сделать сюжет, похожий на этот пример:

пример

Я хотел бы знать, есть ли у вас второй слой на ярлыках x tick (например, «5-летнее статистическое резюме»). Я знаю, что я могу создавать метки с несколькими линиями, используя \n но я хочу, чтобы иметь возможность переводить два уровня самостоятельно.

  • Не удается установить OpenCV3 на Anaconda3 python3.6 на macOS
  • Python 3.5 ImportError: динамический модуль не определяет функцию экспорта модуля (PyInit_cv2)
  • Вызвать код python3 из кода python2
  • Python: В чем разница между __builtin__ и __builtins__?
  • Добавление более одного значения в словарь при циклическом перемещении по строке
  • Форматирование строк в Python 3
  • Как загрузить Pygame для Python 3.5.1?
  • cmp () is not woking для меня (python)
  • 3 Solutions collect form web for “Несколько строк меток x tick в matplotlib”

    это близко:

    XTick

     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' ) 

    Лучшее решение, которое я нашел, это использовать функцию plt.annotate . Здесь хорошо описано: в последнем комментарии

    Я не могу прокомментировать ответ behzad из-за отсутствия репутации. Я нашел, что его решение очень полезно, но я думал, что хочу поделиться этим, вместо того, чтобы контролировать вертикальное выравнивание с помощью set_y (), я просто добавил символ новой строки, чтобы вертикально смещать метки. Итак, для приведенного выше примера:

     xlbls = [ 'background', '\n5 year statistical summary', 'future build', '\nmaximum day', '\n90th percentile day', '\naverage day' ] 

    Для меня это было лучшим решением для сохранения многослойных этикеток и многослойных меток по вертикали.

    Python - лучший язык программирования в мире.