読者です 読者をやめる 読者になる 読者になる

けつあご日記

こんちは.菊地です.なんか浅ーいことをいろいろ書きます

Octaveでグラフが出力できないとき【なれない日記20160727】

なれない日記 機械学習

Coursera Machine Learningをやっていたときのメモ.

ある日Octaveからグラフを出力しようとしたら,

gnuplot> set terminal aqua enhanced title “Figure 2” size 560 420 font “*,6” dashlength 1

^ line 0: unknown or ambiguous terminal type; type just ‘set terminal’ for a list

というエラーが出て出力されなくなってしまった.その前日まではできていたのになぜだろう.特にOctaveやgnuplotに関する変更は加えていないのだが...

調べてみると,エラーコメント通りだが,gnuplotで使うターミナルを指定せよとのこと.エラーコメントではaquaというターミナルが使われているようだが,これを変えてやればよかろう.

使用されているgnuplotは /usr/local/octave/3.8.0/bin にある.試しに起動してみる.

$ ./gnuplot 

	G N U P L O T
	Version 4.6 patchlevel 4    last modified 2013-10-06 
	Build System: Darwin x86_64

	Copyright (C) 1986-1993, 1998, 2004, 2007-2013
	Thomas Williams, Colin Kelley and many others

	gnuplot home:     http://www.gnuplot.info
	faq, bugs, etc:   type "help FAQ"
	immediate help:   type "help"  (plot window: hit 'h')

Terminal type set to 'qt'

どうやらqtというターミナルが使われている.グラフを出力してみると,普通にできる.なのでOctaveのほうでもqtを使うように指定してやれば良さそうだ.

※どうやらMacでは普通X11かaquaを使うらしい.私のgnuplotではこれらは使用できない(set terminalコマンドで確認可能)ようだったのでqtで行くことにした.gnuplotをインストールしなおせばこれらも使用できるらしい.下の参考リンク参照.ターミナルによって描画速度や図の綺麗さが違うらしいぞい.

gnuplot> plot sin(x)

f:id:kichiku_kikuchi:20160727140222p:plain:w500

Octaveの起動時の設定ファイルはシェルとかと同じで,ホームディレクトリに.octavercを作れば良い.gnuplotは同様に.gnuplotだ.それぞれ以下のように書く.

# .octaverc

setenv("GNUTERM","qt")
# .gnuplot

set terminal qt

これでOctaveからでもちゃんとグラフを出力できるようになった.

参考リンク
Octave-Gnuplot-AquaTerm error: set terminal aqua enhanced title "Figure 1"...unknown terminal type" - Stack Overflow
Mac OSXにOctaveをインストールする - もふもふ技術部



↓アフィカスリンク

UNIXという考え方―その設計思想と哲学

UNIXという考え方―その設計思想と哲学