2011年1月28日金曜日

今世紀のいつか

Windowsにはファイルを更新日時で、グループ分けをして表示ができますが、今日おもしろい現象を見つけました。

一番下のグループ名に注目


"今世紀のいつか"って…。

未来の時間のファイルがあると、このように表示されるらしい。
2101年以降のタイムスタンプのファイルがあるとどうなるのだろう。

2011年1月21日金曜日

GMTのgrdimageで透過設定

GMTのgrdimageで透過設定


makecptでカラーパレットとしてgrayを使うと、その後のgrdimageでQオプションを指定してもNaN値が透過されない。
回避策としては、makecptで作成されたcptファイルの一部を以下のように変える。

grayカラーではRGB値が
"0 0 0"とか"255 255 255"というように同じ値が入っているので、それらのうちどこか一箇所を、"255 255 254"というように編集する。
その後、その編集したcptファイルを使用してgrdimageコマンドを使用すると、NaN値がちゃんと透過されて作成される。

ちなみにEPSのファイルサイズは2倍になる。


SRTM3のNaN値を透過表示した図(ネパールヒマラヤのクンブ地方周辺)

2011年1月20日木曜日

Rで途中波線の使い方

Rで途中波線 (Broken axis)の使い方


グラフを書く際に一部の区間にデータがないため、無駄に間隔が広がってしまうような図になる場合、軸の途中に波線を書いて途中を省略するというやり方がある。

テレビ番組などのインチキグラフなどでよく使われる表現なのだが、一応手順の紹介。

まずplotrixライブラリが必要なので、install.packages("plotrix")コマンドなどで、あらかじめインストールしておく。

使用するデータとしては、
xに、1から10まで、1つ間隔の数値データ。
yに、1から5まで、そして16から20までの1つ間隔の数値データがあるとする。
x <- seq(1,10) y <- c(seq(1,5), seq(16,20))

※このままプロットすると左下の図のようになる。 
x.range <- c(1,10)
y.range <- c(1,20)
plot(x, y, xlim=x.range, ylim=y.range)

これらのデータから、y軸の6〜15のあいだにギャップ(10)があることがわかるので、その区間を省略する場合は、 まずyの数値の大きなグループの値そのものをギャップの分だけずらす。
gap <- 10 y[6:10] <- y[6:10] - gap

y軸の最大値もギャップの分だけずらす
y.range[2] <- y.range[2] - gap

そしてまずy軸を描かずにプロットし、
plot(x, y, xlim=x.range, ylim=y.range, yaxt="n")

y軸のラベルをプロットし、
axis(2, at=seq(1,10), label=c(seq(1,5), seq(16,20)))

最後に途中波線を描くと右下の図のようになる。
axis.break(2,5.5)




一連のスクリプトは以下の通り

library(plotrix)


x <- seq(1,10)
y <- c(seq(1,5), seq(16,20))

x.range <- c(1,10)
y.range <- c(1,20)

offset <- 10


layout(matrix(c(1,1,2,2),2,2))


## Standard plot
plot(x, y, xlim=x.range, ylim=y.range)


## Shifting value
y[6:10] <- y[6:10] - offset
y.range[2] <- y.range[2] - offset


## Plot with broken axis
plot(x, y, xlim=x.range, ylim=y.range, yaxt="n")
axis(2, at=seq(1,10), label=c(seq(1,5), seq(16,20)))
axis.break(2,5.5)

2011年1月17日月曜日

雪の名古屋

雪景色の東山スカイタワー(2011/01/16)

16,17日と(名古屋にしては)尋常じゃないぐらいの降り方。
最高気温3℃って、あまりヒマラヤと変わりがない寒さ。

2011年1月14日金曜日

MendeleyとLatexの連携で特殊な引用をしたい場合

いいタイトルが思い浮かばなかったのだが、いいたいことを長い文章で説明すると以下の通り。


Mendeleyではbibファイルを出力することができるため、
LaTeXで原稿を作成する際、そのbibファイルを\bibliography{}で読み込むと、文献情報の管理に便利。
しかし"in press"状態の論文や、地図や、Webサイトなど、普通の論文や本以外の特殊なカテゴリーのエントリを引用したい場合、
Mendeleyでは対応していないという問題がある。

その場合の対処法としては、そのような特殊エントリだけMendeleyに登録せず、別ファイルとして手動で管理する方法がある。
そしてLaTeXコード内の\bibliography{}で複数のbibファイルを指定して読み込む。


例。Mendeleyで出力するファイルがlibrary.bibで、特殊エントリ用のファイルがsublibrary.bibで、ともに"/home/ユーザー名/data"というディレクトリにおいている場合。

\bibliography{/home/ユーザー名/data/library,/home/ユーザー名/data/sublibrary}
※二つのファイルの間にはカンマをいれるが、スペースは含まないことに注意。


そうすれば、"in press"の論文はbibファイルのyearのカテゴリに入力すると、"著者名, (in press), タイトル, 〜〜"と出力が可能となる。



参考書籍
LaTeX2ε美文書作成入門