Python版ggplotで日本語を使う

このエントリで書いた例は対症療法的な解決方法です。もっとスマートに書くやり方があったら教えて下さい。

オヒサシブリデス。

Rのggplot2のような綺麗なグラフをPythonでも使いたい! ということで、Python移植のggplotパッケージを先日インストールしました。

んで、本家ggplot2でもよくある問題である日本語を使うにはどうしたらいいのか、いろいろ調べてみました。

MacOSX で、Python3.4を使用しております。

import sys
print(sys.platform)
print(sys.version)
# darwin
# 3.4.1 (default, May 19 2014, 13:10:29)
# [GCC 4.2.1 Compatible Apple LLVM 5.1 (clang-503.0.40)]

ライブラリのバージョンは以下。

# pip freeze
:
:(省略)
ggplot==0.5.8
ipython==2.1.0
matplotlib==1.3.1

Python版ggplotのREADMEのグラフを以下のように出力してみます。

from ggplot import *

ggplot(aes(x='date', y='beef'), data=meat) + \
    geom_point(color='lightblue') + \
    stat_smooth(span=.15, color='black', se=True) + \
    ggtitle("Beef: It's What's for Dinner") + \
    xlab("Date") + \
    ylab("Head of Cattle Slaughtered")

f:id:ksmzn:20140904191233p:plain

軸ラベルとタイトルが英語ですね。 ここを日本語に直してみましょう。

ggplot(aes(x='date', y='beef'), data=meat) + \
    geom_point(color='lightblue') + \
    stat_smooth(span=.15, color='black', se=True) + \
    ggtitle("牛肉の出荷数") + \
    xlab("日付") + \
    ylab("出荷数")

f:id:ksmzn:20140904191327p:plain

うーん、matplotlibでもよく見かけた□ですね…

ここで、無理矢理フォントの設定を変更する方法を試してみます。 一旦先ほどの式を変数に保存し、パラメータ辞書のフォントを変更します。 とりあえずOsakaで。

g=ggplot(aes(x='date', y='beef'), data=meat) + \
    geom_point(color='lightblue') + \
    stat_smooth(span=.15, color='black', se=True) + \
    ggtitle("牛肉の出荷数") + \
    xlab("日付") + \
    ylab("出荷数")
g.theme._rcParams['font.family']="Osaka"
g

f:id:ksmzn:20140904191336p:plain

おお!日本語が表示できました! ただ、あんまりスマートではないですね。 ggplotの特徴をぶち壊してる感じがします。 もっといい書き方があれば教えて下さい。

漢字読めるけど書けない

漢字読めるけど書けない

Rグラフィックスクックブック ―ggplot2によるグラフ作成のレシピ集

Rグラフィックスクックブック ―ggplot2によるグラフ作成のレシピ集