日本語の表示で苦労しました。例の白抜きの箱が表示されてしまう件です。
最初のトライは
import os
os.environ['VERSIONER_PYTHON_PREFER_32_BIT']='yes'
#t = os.environ['VERSIONER_PYTHON_PREFER_32_BIT']
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import numpy as np
plt.plot([1,2,3,4])
filename = 'myfig2.png'
plt.savefig('media/some/charts/'+filename)
これで出力したファイルをDjangoで表示できました。
'VERSIONER_PYTHON_PREFER_32_BITの下りがないと64bitで動くようでimportエラーになります。
次のステップでタイトルやら軸のラベルを表示すると、文字が白抜きになります。
google groupで検索しました。ロシア語が白抜きになるというエントリで次のコードを見つけました。
import matplotlib
matplotlib.use('GTK')
from matplotlib.matlab import *
from matplotlib.font_manager import *
p = FontProperties()
font = {'fontname' : 'Lucida',
'color' : 'r',
'fontweight' : 'bold',
'fontsize' : 16}
plot([1,2,3])
xlabel(u'natê¿enie',font)
ylabel(u'napiêcie',font)
title(u'Wykres z polskimi literkami ±æê³ñ󶿼',font)
show()
ラベル毎にFontを指定しています。
matplotlib.use('GTK')をコメントアウトして、フォントをMacに搭載されているフォントに変更しました。
p = FontProperties()
#font = {'fontname' : "serif", #dont work
# font = {'fontname' : 'sans-selif', #dont work
font = {'fontname' : 'Hiragino Sans GB',
'color' : 'r',
'fontweight' : 'bold',
'fontsize' : 12}
しかし、次でもOKでした。
rcParams['font.family'] = 'Hiragino Sans GB'
これはプロセスの環境を変えているので軸毎にFontを指定しなくても良いようです。
さらにHOMEディレクトリに/.matplotlib/matplotlibrcファイルを作ればユーザーのdefaultにできます。
もっとも単純にコピーはできなくてterminalからsudoでコピーしないとだめ。
(この辺りがMacのすごいところでlinuxマシンになる)
さらにpythonのsite-packagesのmatplotlib/mpl-data/matplotlibrcの該当するエントリを編集すればOKでしょうが、ここはいじらないでおきました。
0 件のコメント:
コメントを投稿