Когда текстовая метка отметка слишком длинная, часто нам нужно поворачивать ее, чтобы предотвратить наложение текстов.Проблема, с которой я столкнулся, заключается в том, что matplotlib будет отображать только его часть, если он длиннее, чем размер графика.
1.Есть ли способ увеличить поле нижней части графика так, чтобы оно соответствовало всему тексту?
2.Если горизонтальное предпочтительнее, есть ли способ поместить текст в две или более строки, чтобы они не перекрывались?
Вот пример, который обрезает текст:
Я пытался настроить размер с помощью
plt.figure(figsize=(50,50))
, но это привело только к пропорциональному увеличению каждого элемента на графике.
Я попытался настроить margin с помощью
plt.tight_layout()
, но, похоже, компромисс с содержанием графика.Наконец, подумал о настройке соотношения сторон , но, похоже, это относится только к содержанию графика.
В настоящее время я использую matplotlib 2.2.2, и вы можете воспроизвести график выше сследующий код ( оригинал ):
import numpy as np
import matplotlib.pyplot as plt
N = 5
menMeans = (20, 35, 30, 35, 27)
womenMeans = (25, 32, 34, 20, 25)
menStd = (2, 3, 4, 1, 2)
womenStd = (3, 5, 2, 3, 3)
ind = np.arange(N) # the x locations for the groups
width = 0.35 # the width of the bars: can also be len(x) sequence
# plt.figure(figsize=(500,20))
p1 = plt.bar(ind, menMeans, width, yerr=menStd)
p2 = plt.bar(ind, womenMeans, width,
bottom=menMeans, yerr=womenStd)
plt.ylabel('Scores')
plt.title('Scores by group and gender')
# plt.xticks(ind, ('G1', 'G2', 'G3', 'G4', 'G5'))
plt.yticks(np.arange(0, 81, 10))
plt.legend((p1[0], p2[0]), ('Men', 'Women'))
plt.xticks(ind, ('It shows up perfectly fine in Jupyter Notebook', 'how can I adjust "some setting" so that I can see all these?', 'G3', 'G4', 'G5'))
plt.tick_params(labelrotation=90)
# plt.savefig('Example.jpeg')
# plt.tight_layout()
plt.show()