【问题标题】:How do I write a capital Greek "delta" as a string in Python 2.7?如何在 Python 2.7 中将大写的希腊语“delta”写为字符串?
【发布时间】:2017-03-29 10:16:39
【问题描述】:

我正在寻找这个角色:Δ,我需要它作为 matplotlib 中的图例项。 Python 3.x 具有包含 Unicode 字符的 str 类型,但我在 Python 2.7 中找不到任何有价值的信息。

x = range(10)
y = [5] * 10
z = [y[i] - x[i] for i in xrange(10)]

plt.plot(x,z,label='Δ x,y')
plt.legend()
plt.show()

UnicodeDecodeError: 'ascii' 编解码器无法在位置解码字节 0xce 0: 序数不在范围内(128)

【问题讨论】:

  • 查看投票最多的答案here:label=r'$\Delta$x,y'
  • 谢谢伯纳!我已经找到了那个答案,但是当我尝试它时,我得到一个错误(德语):“命令“乳胶”拼写错误或找不到”(可能是命令外壳出错?)。后来(英文):“RuntimeError: LaTeX 无法处理以下字符串:'lp'”
  • 是的,您需要安装 Latex 才能使用此快捷方式。但是您可以看到如何在我指出的问题上选择带有符号的新字体(或@Diziet 的出色答案)。

标签: python-2.7 matplotlib unicode symbols


【解决方案1】:

虽然@berna1111 的评论是正确的,但您不需要使用LaTeX 格式来获取Δ 字符。 在 python 2 中,您需要使用 u'' 构造 (see doc here) 指定字符串是 unicode。例如:

plt.plot(x,z,label=u'Δ x,y')

【讨论】:

  • 谢谢,迪齐特!您的建议抑制了错误,但该符号无法显示在图中。只有空白矩形。
  • 您可能使用了没有 ∆ 字符的字体。尝试使用 rcParams 中的字体(参见matplotlib.org/users/customizing.html)或尝试类似plt.legend(prop={'family':'Times New Roman'})
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-15
  • 1970-01-01
相关资源
最近更新 更多