有没有一种方法可以在matplotlib中使轴标签变为粗体和斜体

问题描述

我正在python循环中绘制几个(一百个)图形。轴标签基于字符串和预定变量名的组合。我并且需要同时包含斜体和粗体字体,但不确定如何实现此目的。我曾尝试搜索其他stackoverflow帖子以及各种Google搜索,但没有发现任何问题。

myvariable =“此循环中的更改”#必须为粗体 verb =“这也会在每个循环中发生变化”#必须为斜体

# I would like myvariable to be in bold text 
# I would like "Less" and verb and "More" and verb to be in italic text

plt.ylabel(myvariable + "\n" + "Less" + verb + "       " + "More" + verb)

有没有一种方法可以用斜体来格式化变量名(也许类似于r"$\it{some text}$",其中的斜体文本代替了预定的字符串,而是每个新图形在每个循环中都会改变的变量? str.upper(myvairable)用粗体或斜体字体代替大写字母的地方?尽管对变量进行硬编码在技术上是可行的,但由于要绘制成百上千的图形,因此对我来说并不是一个选择。

非常感谢您的帮助!

预先感谢

解决方法

我找到了答案!从这里开始:enter image description here

可能不是超级优雅,但是我使用了verb而不是r"$\it{{{}}}$".format(verb.replace(' ',r'\;'))。这将在变量名中添加而不是仅在原始文本中进行格式化,并按照我的意愿对其进行完全格式化。同样也可以用于粗体字体。我的解决方案的完整代码是:

plt.ylabel(str.upper(my_variable) + " (years)" + "\n" + r"$\longleftarrow$" + r"$\it{Less}$" + " " +  r"$\it{{{}}}$".format(verb.replace(' ',r'\;')) +  
               "                       " + r"$\it{More}$" + " " + r"$\it{{{}}}$".format(verb.replace(' ',r'\;')) + r"$\longrightarrow$",fontname="Arial Bold",fontsize=14,fontweight="bold",labelpad=5,color="black")