par(new=T) を使うと共に、col に Alpha チャンネル付きで色指定しておくと良いらしい。
背景にグリッドを引きたい場合は、c() 等空のデータを与えて、空のグラフをプロットしておくと良さそう。
xlim, ylim のスケールは合わせておかないと比較にならないので注意が必要。
ヒストグラムだと以下のような感じ。
参考:
背景にグリッドを引きたい場合は、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")
参考:
- biostatistics / R / グラフィックス / ヒストグラム
引数に 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 となる。
数値で与える場合は、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=) で適当に引くのだが、割と面倒くさいので、
以下のような関数を用意しておくと便利かも(同等の標準添付関数はないのだろうか)?
参考:
罫線は 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")
参考:
- sphaerula.com / R / script / 2006-03-17: Log-log Plots
- NoiseFactory / 2010-09-12: GNU RとJavaScriptの無名再帰をやってみた
基本は
windows() や RStudioGB() はメニューからファイルやクリップボードへ保存が可能。X11() は少なくとも Cygwin のやつ(X11cairo)はメニューとかが出ないので GUI から保存は出来ない模様。
既にプロット済みのグラフを保存したい場合は、dev.copy() が便利。
ビットマップ系、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() で現在の使用中のデバイスのスタックが表示される。
参考:
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() で現在の使用中のデバイスのスタックが表示される。
参考:
- R-Tips # 11.3 作図デバイスについて
- Quick-R / Graphical Parameters, pch によるプロットシンボルの変更など
- Qiita / daifuku_mochi2 / 2017-07-11: R 二軸でのplot()
- 金子邦彦研究室 / 実践知識 / プログラミング言語 R を用いたグラフ描画 / plot() 関数でのグラフ作成の各種パラメータ
タグ
コメントをかく