【问题标题】:write an upright mu in matplotlib在 matplotlib 中写一个竖立的 mu
【发布时间】:2013-09-12 23:44:06
【问题描述】:

我试图在我的坐标区标签中放置一个竖直的 mu,但 matplotlib 只显示一个方框。

示例代码:

# -*- coding: utf-8 -*-
from matplotlib import pyplot as plt

plt.plot([1,2],[3,4])
plt.xlabel(u"A distance (μm)")
plt.show()

奇怪的是:当我直接在 spyder 启动时打开的交互式 python 解释器中运行它时,μ 显示得很好。但是,当我在专用解释器中从 .py 文件运行它时,它显示为“?”或作为正方形。

spyder 的 python 解释器做了哪些我没有做的事情?无论脚本从哪里运行,我都需要导入什么才能使其正常工作?

注意:我知道我也可以执行类似“A distance ($\mu$m)$,但这会创建一个斜体 mu,这对于单位的排版不正确...

【问题讨论】:

  • 您使用的终端和编辑器是否支持utf-8?您的语言环境是否启用 utf8?
  • 您可以通过编写 '$\mathrm{...}$' 来避免使用斜体字符。可悲的是,这对 \mu 没有影响。您可能想更改 LaTeX Preamble 以包含像 upgreek 这样的包来解决这个问题?
  • 也许this question(并回答)帮助?
  • @BrianCain:我不知道......我想是编辑器和解释器,因为当我输入(ctrl-v)字符时,字符显示正常。如何检查我的语言环境是否启用?
  • @Faultier:我知道,我过去做过,但它既复杂又慢。一个 unicode μ 只会让一切变得更容易。

标签: python python-2.7 matplotlib spyder


【解决方案1】:

Non-ASCII characters in Matplotlib 提出的添加这一行的建议起到了作用:

plt.rc('font', **{'sans-serif' : 'Arial', 'family' : 'sans-serif'})

我以为我已经涵盖了这一点,因为我在我的 rcParams 字典中添加了以下行:

plt.rcParams.update({'font.sans-serif': 'Arial', 'font.family': 'sans-serif'})

显然不是一回事。

【讨论】:

  • 设置text.usetex=True 也可以让你使用\textmu
猜你喜欢
  • 1970-01-01
  • 2014-04-16
  • 1970-01-01
  • 2012-06-23
  • 2014-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多