Новая строка Matplotlib больше при использовании текстового надстрочного индекса - PullRequest
0 голосов
/ 10 апреля 2019

Я хочу поместить две строки текста с несколькими цифрами на графике.Это работает отлично (Пример 1).

Однако мне нужно, чтобы часть текста была надстрочной.Когда я использую $^{text}$, мой \n символ новой строки, кажется, становится больше, что нарушает мое выравнивание на графике, как в примере 2. Разница невелика, но этого достаточно, чтобы вызывать у меня проблемы.

Можно ли как-нибудь сохранить исходный интервал символа новой строки, а также включить форматирование верхнего индекса?Я знаю, что есть несколько сообщений на подобные темы, но в основном они касаются использования необработанных строк, а не размера самой новой строки.

Простой и полный пример:

import matplotlib.pyplot as plt
n=100

#Example 1
plt.text(0,0.01,'Hello: '+str(n)+'\n'+'TEST')
#Example 2
plt.text(0.2,0.01,'Hello: '+str(n)+'\n'+r'TEST1$^{problem}$')

1 Ответ

1 голос
/ 10 апреля 2019

Вы можете установить linespacing текста вручную.

import matplotlib.pyplot as plt
n=100
#plt.axhline(0.06, alpha=0.4)
text_kw = dict(verticalalignment="baseline", fontsize=10)
#Example 1
plt.text(0,0.01,'Hello: '+str(n)+'\n'+'TEST', linespacing=1.5, **text_kw)
#Example 2
plt.text(0.2,0.01,'Hello: '+str(n)+'\n'+r'TEST1$^{problem}$', linespacing=1.2, **text_kw)
plt.show()

enter image description here

В этом случае значения для 1,2 для текста с mathtext и 1,5 для текста без mathtext, кажется, дают хорошие результаты.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...