Сегодня у меня есть очень специфическая проблема: я хочу напечатать строковую переменную внутри функции, используя plt.text()
, выделенный жирным шрифтом. Я чувствую, что выдвигаю графические возможности Python до предела, когда смешиваю mathtext
с обычным синтаксисом.
Итак, важная часть функции выглядит так:
def graph_text(var):
string0=f'String is:'+r"$\bf{"+var+"}$"
plt.text(string0)
Дело в том, что var
- это несколько строк, которые могут содержать от одного до трех слов. По умолчанию в mathtext
строки объединяются, поэтому для var='the dog'
будет выведено «String is thedog ».
Затем я попытался использовать split()
и '\/\'.join()
, например:
string0=f'String is:'+r"$\bf{"+('\/\'.join(var.split()))+"}$"
('\ / \' - это пробел в mathtext
, но поскольку здесь мы находимся за пределами синтаксиса mathtext
, это интерпретируется как символ scape и приносит SyntaxError
. Итак, единственное решение, которое я может найти это вручную сделать это так:
if len(var)==1:
string0=f'String is:'+r"$\bf{"+var.split()[0]+"}$"
elif len(var)==2:
string0=f'String is:'+r"$\bf{"+var.split()[0]+r" $\bf{"+var.split()[1]+"}$"
else:
(insert same code but for three words)
Итак, вы знаете, есть ли способ сделать это без учета каждого возможного случая? Спасибо