Как выровнять метку, которая содержит верхний и нижний индексы в MatPlotLib? - PullRequest
1 голос
/ 17 апреля 2019

У меня простой вопрос о положении тиклабелов в матплотлибе. Я написал следующий код:

import matplotlib.pyplot as plt
import numpy as np

label = [r'$\mathregular{PM_{2.5}}$','OC',r'$\mathregular{SO_4^{2-}}$',\
r'$\mathregular{NH_4^{+}}$', r'$\mathregular{NO_3^{-}}$', \
"EC",r'$\mathregular{Cl^{-}}$','K','Al','Ca','Fe','Na','Mg','Zn','Pb','Ti','Ba','Mn','Cu']

fig = plt.figure(figsize=(9,2))
ax  = plt.subplot(111)
pos = np.arange(0,len(label),1)

ax.set_xlim(0-0.5,pos[-1]+0.5)
ax.set_xticks(pos)
ax.set_xticklabels(label, fontsize = 12)
plt.tight_layout()
plt.show()

Который производит:

enter image description here

Однако , метки, содержащие как верхний, так и нижний индексы, не выровнены с другими метками.

Как решить эту проблему, чтобы убедиться, что все метки расположены вдоль горизонтальной линии?

1 Ответ

2 голосов
/ 17 апреля 2019

Использовать вертикальное выравнивание по «базовой линии» вместе с обновленным отступом:

ax.set_xticklabels(label, fontsize = 12, va="baseline")
ax.tick_params(axis='x', pad=12)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...