web-dev-qa-db-ja.com

matplotlibで摂氏記号を印刷するにはどうすればよいですか?

軸ラベル「Temperature(℃)」を印刷したい。どうすればいいのですか?スニペットは次のとおりです。

# -*- 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を使用していて、そこからコードを実行しています。

12
a different ben

LaTeXインタープリターを使用して度記号を作成します。

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

結果は次のとおりです。

enter image description here

22
Carl F.
ax.set_xlabel(u'Temperature (℃)')

動作するはずです:

enter image description here

In [56]: matplotlib.__version__
Out[56]: '1.0.1'
8
unutbu

DEGREE CELSIUS U + 2103(℃)の代わりに、DEGREE SIGN U + 00B0(°)の後に大文字を使用します。これは、フォントの適用範囲など、いくつかの理由ではるかに安全です。 nicode Standard (15.2文字様記号;p。481)で推奨されている方法でもあります。

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

enter image description here

4
Jesuisme

または:

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

TeXおよび非TeXと互換性を持たせたい場合は、おそらく両方の方法を使用して、前にif rcParams['text.usetex']でテストする必要があります-手。これは ベースマップでどのように行われるか たとえばです。

1
letmaik

Spyderユーザー向けのアップデート:

$ ^\circ $-動作します!

\ N {DEGREESIGN}-小文字のガンマ記号を表示します。.

0
skidzo