在 matplotlib 中设置文本属性(压缩、扩展和小型大写字母)

mic*_*lis 6 python text matplotlib

我正在尝试创建一个包含几段文本的 matplotlib 图,但我无法将某些文本属性设置为所需的值。

具体来说,我在创建“小型大写字母”变体和“压缩”/“扩展”拉伸文本时遇到问题。

我尝试过以下 python 脚本

import matplotlib.pyplot as plt

fig, ax = plt.subplots(1, 1)
ax.text(0.3, 0.3, "Hello!")
ax.text(0.3, 0.7, "Hello!", fontdict = {'stretch': 'ultra-expanded'})
ax.text(0.7, 0.3, "Hello!", fontdict = {'stretch': 'condensed'})
ax.text(0.7, 0.7, "Hello!", fontdict = {'variant': 'small-caps'})
plt.show()
Run Code Online (Sandbox Code Playgroud)

我得到了按预期定位的四段文本,但样式没有差异(即,设置“拉伸”和“变体”属性没有区别)。

我该怎么做才能获得所需的文本样式?

注意:

  1. 我已经使用 python2.7、python3.4 运行了该脚本,并使用 python3 在 ipython 笔记本上运行了该脚本;在所有情况下,我都会得到相同的结果,没有错误或警告。
  2. 将其他属性(“family”、“size”、“style”)设置为不同的值确实会更改输出文本。

vau*_*ett 1

似乎 matplotlib 实际上不支持“小型大写字母”(即使文档另有建议)。自 2017 年以来,他们有一个悬而未决的问题:issue #8552