Как напечатать символ Цельсия с помощью matplotlib? - PullRequest
10 голосов
/ 09 декабря 2011

Я хочу напечатать метку оси: «Температура (℃)». Как мне это сделать? Вот фрагмент кода:

# -*- 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 (℃)')

Для последней строки, которую я пробовал:

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)')

Я просто не понимаю. Я использую Spyder и запускаю код оттуда.

Ответы [ 6 ]

21 голосов
/ 09 декабря 2011

Используйте интерпретатор LaTeX для создания символа степени.

ax.set_xlabel('Temperature ($^\circ$C)')

Вот результаты:

enter image description here

7 голосов
/ 09 декабря 2011
ax.set_xlabel(u'Temperature (℃)')

должно работать:

enter image description here

In [56]: matplotlib.__version__
Out[56]: '1.0.1'
6 голосов
/ 09 декабря 2011

Вместо СТЕПЕНИ CELSIUS U + 2103 (use) используйте ЗНАК СТЕПЕНИ U + 00B0 (°), за которым следует заглавная буква.Это намного безопаснее по нескольким причинам, включая покрытие шрифтов.Это также способ, рекомендуемый в стандарте Юникод (15,2 буквенных символов; стр. 481).

3 голосов
/ 29 августа 2015

Чтобы это работало в matplotlib без интерпретатора LaTex, используйте форматирование Unicode AND строка символов 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()

enter image description here

1 голос
/ 22 сентября 2014

Или:

ax.set_xlabel(u'Temperature (\N{DEGREE SIGN}C)')

Если вы хотите сделать его совместимым с TeX и не-TeX, то, вероятно, нужно использовать оба способа и предварительно протестировать с if rcParams['text.usetex']. Это как это сделано, например, в базовой карте .

0 голосов
/ 31 июля 2015

Обновление для пользователей Spyder:

$ ^ \ circ $ - работает!

\ N {DEGREE SIGN} - дает мне строчный символ гаммы ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...