Matplotlib: при вращении xticks появляется неравномерный разрыв между метками - PullRequest
0 голосов
/ 29 августа 2018

Это странно. При вращении всех этикеток на -90º они выглядят равномерно и расположены на своих местах:

feat_names = ["totalUniqueCustomerPhoneNumberLocal_f",
                "userIdentitty_f",
                "EMAIL_WEEKS_1_f",
                "length_f",
                "totalValidations_f",
                "amount_per_purchase_k",
                "amount_f"]

X1 = np.array([0.18790969, 0.18208303, 0.15003641, 0.11143482, 0.07428987,
       0.06846322, 0.06773489])

plt.figure()
plt.title("Feature importances")
plt.bar(range(X1.shape[0]), X1,color="r", align="center")
plt.xticks(range(X1.shape[0]), feat_names, rotation = -90)
plt.xlim([-1, X1.shape[0]])
plt.show()

result of script

Однако мне нужно, чтобы они были повернуты на -45º, и вот что происходит:

feat_names = ["totalUniqueCustomerPhoneNumberLocal_f",
                "userIdentitty_f",
                "EMAIL_WEEKS_1_f",
                "length_f",
                "totalValidations_f",
                "amount_per_purchase_k",
                "amount_f"]

X1 = np.array([0.18790969, 0.18208303, 0.15003641, 0.11143482, 0.07428987,
       0.06846322, 0.06773489])

plt.figure()
plt.title("Feature importances")
plt.bar(range(X1.shape[0]), X1,color="r", align="center")
plt.xticks(range(X1.shape[0]), feat_names, rotation = -45)
plt.xlim([-1, X1.shape[0]])
plt.show()

result of script2

Есть идеи, как сделать так, чтобы метки начинали выравниваться по центру полосы при их повороте на -45º?

Спасибо

1 Ответ

0 голосов
/ 29 августа 2018

Горизонтальное выравнивание выполняется через horizontalalignment или его псевдоним ha,

plt.xticks(..., rotation = -45, ha="left")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...