9
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

pythonでiGraphを使用すると日本語が表示されない問題を解決する[Mac]

Last updated at Posted at 2018-03-01

なぜiGraphを使用したかというと読んでいた参考書で使っていたから。

iGraphをpythonで使うにするのがそもそもやや煩雑だった。

  • iGraphは内部でcario使っているからcarioインストールする必要ある
  • iGraphをpythonから使うためのインターフェイスであるpython-igraphも必要
  • pythonでcario使うにはpycairo(anacondaはcondaコマンドで楽できる)、cairocffiあたりも必要

以下コマンドを叩けば環境は用意できるはず。

brew install igraph
brew install cairo --use-clang
pip install python-igraph
conda install -c conda-forge pycairo
pip install cairocffi

で、試しにグラフ描画する。

from igraph import *
vertices = ["山田", "Tanaka", "Suzuki", "Sato", "Ito", "Obokata"]
edges = [(0,1),(1,3),(1,4),(1,5),(2,5),(3,5),(4,3),(0,5)]
g = Graph(vertex_attrs={"label": vertices}, edges=edges, directed=True)
plot(g, vertex_size=30, bbox=(800, 800),vertex_color='white')

image.png

しかし、日本語が表示されない。↑のケースだと山田が存在しない。

原因はライブラリであるigraph/drawing/graph.pyDefaultGraphDrawerクラスに以下のようにフォントがハードコードされているためだった。

        context.select_font_face("sans-serif", cairo.FONT_SLANT_NORMAL, \
            cairo.FONT_WEIGHT_NORMAL)

これを以下のように修正した。

        context.select_font_face("Hiragino Sans", cairo.FONT_SLANT_NORMAL, \
            cairo.FONT_WEIGHT_NORMAL)

image.png

これで日本語(山田)が表示されるようになった。

9
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?