如何使用matplotlib打印摄氏度符号?

a d*_*ben 11 python unicode latex matplotlib

我想打印一个轴标签:"温度(℃)".我该怎么做?一个片段是这样的:

# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
x = range(10,60,1)
y = range(-100, 0, 2)
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(x,y)
ax.set_xlabel('Temperature (?)')
Run Code Online (Sandbox Code Playgroud)

对于最后一行,我尝试过:

ax.set_xlabel('Temperature (?)'.encode('utf-8'))

ax.set_xlabel(u'Temperature (u\2103)')

ax.set_xlabel(u'Temperature (?)')

ax.set_xlabel(u'Temperature (\u2103)')

ax.set_xlabel('Temperature (\u2103)')
Run Code Online (Sandbox Code Playgroud)

我只是不明白.我正在使用spyder并从那里运行代码.

Car*_* F. 22

使用LaTeX解释器制作度数符号.

ax.set_xlabel('Temperature ($^\circ$C)')
Run Code Online (Sandbox Code Playgroud)

结果如下:

在此输入图像描述

  • 我认为这对我来说是最好的解决方案.它还具有使我的图形标签与我的文本匹配的优点(我使用LaTeX进行排版).而不是$ ^\circ $ C,我使用\ textcelsius. (3认同)

unu*_*tbu 8

ax.set_xlabel(u'Temperature (?)')
Run Code Online (Sandbox Code Playgroud)

应该管用:

在此输入图像描述

In [56]: matplotlib.__version__
Out[56]: '1.0.1'
Run Code Online (Sandbox Code Playgroud)


Juk*_*ela 6

而不是DEGREE CELSIUS U + 2103(℃),使用DEGREE SIGN U + 00B0(°)后跟大写字母.由于几个原因,包括字体覆盖,这更安全.它也是Unicode标准中推荐的方式(15.2字母符号;第481页).


Jes*_*sme 6

要在没有 LaTex 解释器的情况下在 matplotlib 中执行此操作,请使用 unicode 格式unicode 字符串

from numpy import arange, cos, pi
from matplotlib.pyplot import (figure, axes, plot, xlabel, ylabel, title,
                               grid, show)
figure(1, figsize=(6,4))
ax = axes([0.1, 0.1, 0.8, 0.7])
t = arange(0.0, 1.0 + 0.01, 0.01)
s = 3*cos(2*pi*t)+25
plot(t, s)

title('Average High Temperature')
xlabel('Year')
ylabel(u'Temp (\u00B0C)')
grid(True)
show()
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明