hack のためのネタ帳, etc,,,

par(new=T) を使うと共に、col に Alpha チャンネル付きで色指定しておくと良いらしい。
背景にグリッドを引きたい場合は、c() 等空のデータを与えて、空のグラフをプロットしておくと良さそう。
xlim, ylim のスケールは合わせておかないと比較にならないので注意が必要。
ヒストグラムだと以下のような感じ。
library("MASS")
data1 = rnorm(1000,400,100)
data2 = rnorm(1000,500,120)
h=25
gridh=100
xlim=range(0,1000)
ylim=range(0,5e-3)
plot(c(), xlim=xlim, ylim=ylim, axes=F, xlab="x", ylab="y")
abline(v=seq(xlim[1],xlim[2],gridh),col="#AAAAAA") # グリッドの描画
axis(side=1) # x 軸
axis(side=2) # y 軸
par(new=T)
truehist(data1, h=h, xlim=xlim, ylim=ylim, axes=F, xlab="", ylab="", col="#0000FF40", border="#0000FF")
par(new=T)
truehist(data2, h=h, xlim=xlim, ylim=ylim, axes=F, xlab="", ylab="", col="#FF000040", border="#FF0000")

参考: 関連:
引数に lty を与えると Line TYpe の指定となる。
数値で与える場合は、0=blank, 1=solid (default), 2=dashed, 3=dotted, 4=dotdash, 5=longdash, 6=twodash を、
文字列で与える場合は "blank", "solid", "dashed", "dotted", "dotdash", "longdash", "twodash" を与える。
また 8 文字を上限に、破線で ON/OFF する長さを 16 進法の文字列で与えることも出来る(つまり "1"〜"F" を与える)。
lty の 2:6 は "44", "13", "1343", "73", "2262" と同義である。
単位長さは lwd で与えた長さに比例し、lwd=1 は pixels か points か 1/96 inch となる。
plot(1:6,1:6)
for(i in 1:6){
  abline(h=i,lty=i)
  abline(v=i,lty=c("22","8424","81818444","F1F44444","F4444444","2464F464")[i])
}
plot() の引数に log="x" とか log="y" とか log="xy" とか与えれば片対数や両対数のグラフが描ける。
罫線は abline(h=), abline(v=) で適当に引くのだが、割と面倒くさいので、
以下のような関数を用意しておくと便利かも(同等の標準添付関数はないのだろうか)?
loggrid <- function(l, h, d=l) if(l<=h) c(seq(l,if(h<l*10) h else l*10-l/100, d), Recall(l*10, h, d*10)) else c()
plot(1:100,100:1,log="xy")
abline(v=loggrid(1,100),h=loggrid(1,100),lty=4,col="#A0C0FF")

参考:
基本は
png(filename="hoge.png") # デバイスの初期化
plot(1:10) # プロット
# ...
dev.off() # デバイスの終了
明示的にデバイスを初期化しない場合は、各環境で標準のデバイス(UNIX 系だと X11()、Windows だと windows()、RStudio だと RStudioGD() 等)が自動的に初期化される。
windows() や RStudioGB() はメニューからファイルやクリップボードへ保存が可能。X11() は少なくとも Cygwin のやつ(X11cairo)はメニューとかが出ないので GUI から保存は出来ない模様。

既にプロット済みのグラフを保存したい場合は、dev.copy() が便利。
plot(1:10) # プロット
# ...
dev.copy(png, filename="hoge.png") # プロット済みのデバイスを新たなデバイスへコピー
dev.off() # コピー先のデバイスを終了
デバイスは
ビットマップ系、bitmap, dev2bitmap, bmp, jpeg, png, tiff
ベクター系、svg, cairo_pdf, cairo_ps, pdf, postscript, pictex, xfig, win.metafile
等があるが win.metafile は Cygwin でも使えないのでこれは Windows 環境限定かも。
あと、metafile は alpha channel が扱えないのもちょっと辛い所。
Office 2019 は SVG ネイティブ対応しているので、そっち推奨だろう。

dev.list() で現在の使用中のデバイスのスタックが表示される。

参考:

参考になるページ等

タグ

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Wiki内検索

フリーエリア

管理人/副管理人のみ編集できます