在标签中使用下划线实际上并不会创建下划线。我不确定发生了什么
最小工作示例:
variable = range(5)
plt.plot(variable, variable, label='test_underscore')
plt.plot(variable, variable, label='escape\_underscore')
plt.plot(variable, variable, label=r'rawtest_underscore')
plt.plot(variable, variable, label=r'rawescape\_underscore')
_=plt.legend()
字符串
的数据
编辑:
以下是我的rcParams
:
plt.rcParams.update({
'font.family': 'serif',
'font.serif': 'cmr10',
'mathtext.fontset': 'cm',
'axes.unicode_minus': False,
'font.size': 11,
'figure.dpi': 200,
'lines.linewidth': 0.5,
'axes.grid': True
})
型
当我运行时没有这个,我得到它的工作正确:
2条答案
按热度按时间vlurs2pr1#
字体
cmr10
是罪魁祸首。这是与matplotlib捆绑的字体,但它实际上不包括下划线字符。来自FontForge:的数据
从this website开始,下划线的unicode字符是
U+005f
,我们可以从上面的图像中看到它被Map到了overdot。这就是为什么我们在标签中看到了一个overdot而不是下划线。我将使用matplotlib提交一个关于这个问题的问题。希望我们能正确地修补字体。编辑:github issue is here(#16995)
解决方案:
原来TeX最初没有下划线编码。
所以唯一的解决办法就是使用不同的字体。
v09wglhw2#
我能够使用的另一个解决方案是将“”替换为“$\mathrm{}$”
例如使用
字符串
因此,x1c 0d1x