Takuya71 のぶろぐ

外資系ソフトウェア会社で働いてます、認定スクラムマスター

gnuplot で 日本語のラベルを指定すると 豆腐になるのですが

gnuplot で 日本語が表示できない。

erminal type set to 'aqua'
gnuplot> set font 'ヒラギノ丸ゴ ProN W4,16'
gnuplot> plot sin(x)
gnuplot> set title 'ああああ'
gnuplot> plot sin(x)

実際は ruby から実行しているのですが、 gnuplot から上のように直接事項しても豆腐に。

gnuplot 側の問題か aquaterm の問題なのかどっちだろう。

情報求む。

できた。

ググったら みつけた

https://blog.milkywaygalaxy.info/blog/2011-1026-2130-gnuplot-japanese-language-label-rotate-vertically/

~/.gnuplot に以下のような記述しておけばよいらしい。

% cat ~/.gnuplot
set term aqua title 'Gnuplot' font 'HiraMinPro-W3, 16' size 640 480 enhanced

やってみたところできた!! f:id:takuya71:20151217235013p:plain

その後 もっと調べてみました。

.gnuplot でなくても 肝なところは

term aqua の部分でした。

.gnuplot で指定しなくとも ruby のプログラム中でも

Gnuplot.open do |gp|
  Gnuplot::Plot.new(gp) do |plot|
    plot.title '出現頻度が高い10語'
    plot.ylabel '出現頻度'
    plot.xlabel '出現単語'
    plot.set 'term aqua font "ヒラギノ丸ゴ ProN W4, 16"'

    x = ht.sort_by {|k,v| -v}[0..9].map{|k,v| k}
    y = ht.sort_by {|k,v| -v}[0..9].map{|k,v| v}

        plot.data << Gnuplot::DataSet.new( [x, y] ) do |ds|
            ds.with = "boxes"
            #ds.notitle
      ds.using = "2:xtic(1)"
        end
  end
end

のように .set 'term aqua font <フォント名> と指定すると 期待通りに日本語が表示されるようになります。

下の画像は 上のプログラムのように ヒラギノ丸ゴ ProN W4 を指定した場合です。 f:id:takuya71:20151218224516p:plain