grDevices

Package ‘grDevices’
September 14, 2016
Version 3.3.1
Priority base
Title The R Graphics Devices and Support for Colours and Fonts
Author R Core Team and contributors worldwide
Maintainer R Core Team <[email protected]>
Description Graphics devices and support for base and grid graphics.
License Part of R 3.3.1
Suggests KernSmooth
R topics documented:
grDevices-package
adjustcolor . . . . .
as.graphicsAnnot .
as.raster . . . . . .
axisTicks . . . . .
boxplot.stats . . . .
cairo . . . . . . . .
check.options . . .
chull . . . . . . . .
cm . . . . . . . . .
col2rgb . . . . . .
colorRamp . . . . .
colors . . . . . . .
contourLines . . .
convertColor . . .
densCols . . . . . .
dev . . . . . . . . .
dev.capabilities . .
dev.capture . . . .
dev.flush . . . . . .
dev.interactive . . .
dev.size . . . . . .
dev2 . . . . . . . .
dev2bitmap . . . .
devAskNewPage .
Devices . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
3
4
5
6
8
9
12
13
14
14
16
18
19
20
22
23
25
26
26
27
28
29
31
33
34
2
grDevices-package
embedFonts . . .
extendrange . . .
getGraphicsEvent
gray . . . . . . .
gray.colors . . . .
grSoftVersion . .
hcl . . . . . . . .
Hershey . . . . .
hsv . . . . . . . .
Japanese . . . . .
make.rgb . . . .
n2mfrow . . . . .
nclass . . . . . .
palette . . . . . .
Palettes . . . . .
pdf . . . . . . . .
pdf.options . . .
pictex . . . . . .
plotmath . . . . .
png . . . . . . .
postscript . . . .
postscriptFonts .
pretty.Date . . . .
ps.options . . . .
quartz . . . . . .
quartzFonts . . .
recordGraphics .
recordPlot . . . .
rgb . . . . . . . .
rgb2hsv . . . . .
savePlot . . . . .
trans3d . . . . . .
Type1Font . . . .
x11 . . . . . . .
X11Fonts . . . .
xfig . . . . . . .
xy.coords . . . .
xyTable . . . . .
xyz.coords . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Index
grDevices-package
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
35
36
37
39
40
41
42
44
47
48
49
50
51
52
53
55
60
61
62
67
71
78
81
82
83
85
86
88
89
90
92
93
94
95
100
101
103
104
105
107
パッケージ grDevices
Description
基本とグリッドグラフィックスに対するグラフィックスデバイスとサポート.
adjustcolor
3
Details
このパッケージは base と grid グラフィックスの双方をサポートする関数を含む.
関数の完全なリストには library(help = "grDevices") を使う.
Author(s)
R Core Team と世界中の貢献者
管理者:R Core Team <[email protected]>
adjustcolor
色の補正
Description
色の補正や修正を (r, g, b, α) 空間中の一つ又は複数の座標上で “調整ノブ”により行う.
典型的にはそれらのスケールを上下することで行う.
Usage
adjustcolor(col, alpha.f = 1, red.f = 1, green.f = 1, blue.f = 1,
offset = c(0, 0, 0, 0),
transform = diag(c(red.f, green.f, blue.f, alpha.f)))
Arguments
col
色のベクトル, col2rgb() が受け入れる任意のフォーマットが可能.
alpha.f
不透明度アルファを修正する因子;典型的には [0,1] 中.
red.f, green.f, blue.f
それぞれ色の “赤”,“緑” 又は “青”味を修正する因子.
offset
transform
Value
col と同じ長さの色ベクトルで,実効的には rgb() の結果.
See Also
rgb, col2rgb. より洗練された色の構成には convertColor.
Examples
## 説明のための例:
opal <- palette("default")
stopifnot(identical(adjustcolor(1:8,
0.75),
adjustcolor(palette(), 0.75)))
cbind(palette(), adjustcolor(1:8, 0.75))
## alpha = 1/2 * 直線のアルファ --> 不透明色
x <- palette(adjustcolor(palette(), 0.5))
4
as.graphicsAnnot
sines <- outer(1:20, 1:4, function(x, y) sin(x / 20 * pi * y))
matplot(sines, type = "b", pch = 21:23, col = 2:5, bg = 2:5,
main = "Using an 'opaque ('translucent') color palette")
x. <- adjustcolor(x, offset = c(0.5, 0.5, 0.5, 0), # <- "より白っぽい"
transform = diag(c(.7, .7, .7, 0.6)))
cbind(x, x.)
op <- par(bg = adjustcolor("goldenrod", offset = -rep(.4, 4)), xpd = NA)
plot(0:9, 0:9, type = "n", axes = FALSE, xlab = "", ylab = "",
main = "adjustcolor() -> translucent")
text(1:8, labels = paste0(x,"++"), col = x., cex = 8)
par(op)
## そして
(M <- cbind( rbind( matrix(1/3, 3, 3), 0), c(0, 0, 0, 1)))
adjustcolor(x, transform = M)
## 直線のパレットに復帰:アクティブ
palette(opal)
as.graphicsAnnot
グラフィックスの注釈
Description
R オブジェクトをグラフィックス注釈に適した形式に強制変換する.
Usage
as.graphicsAnnot(x)
Arguments
x
R オブジェクト.
Details
表現式,呼び出しそして名前(plotmath が使うような)は未変更で渡される.明示的なクラ
スを持つ(is.object で決まるような) 他の全てのオブジェクトは as.character で文字列
ベクトルに強制変換される.
これを使う全ての graphics と grid 関数は呼び出しと名前を内部的に表現式に強制変換す
る.
Value
言語オブジェクトか文字列ベクトル.
as.raster
5
as.raster
ラスタ―オブジェクトを作る
Description
ラスタ―オブジェクト(ビットマップイメージ)を作り,他のオブジェクトをラスタ―オ
ブジェクトに変換する関数.
Usage
is.raster(x)
as.raster(x, ...)
## S3 method
as.raster(x,
## S3 method
as.raster(x,
for
max
for
max
class 'matrix'
= 1, ...)
class 'array'
= 1, ...)
## S3 method
as.raster(x,
## S3 method
as.raster(x,
## S3 method
as.raster(x,
## S3 method
as.raster(x,
for
max
for
max
for
max
for
max
class 'logical'
= 1, ...)
class 'numeric'
= 1, ...)
class 'character'
= 1, ...)
class 'raw'
= 255L, ...)
Arguments
x
max
...
R オブジェクト.
色値の範囲の最大値を与える数.
他のメソッドに・から渡される追加引数.
Details
クラス "raster" のオブジェクトはビットマップを表現する rgb が与えるような色値の行
列である.
ユーザがこれらの関数を直接呼び出すことは意図されていない:グラフィックスパッケ
ージ中のビットマップを作る関数はそれらの入力からラスタ―オブジェクトを作るのに
as.raster() 関数を使う.
as.raster() 関数は(S3)総称的であり,他の R オブジェクトをラスタ―イオブジェクト
に変換するメソッドを書くことが出来る.
数値行列に対する既定の実装はスカラー値を白黒スケールと解釈する.
ラスタ―オブジェクトは行列と同じように部分操作が出来,ラスタ―オブジェクトの一
部に付値することが出来る.
ラスタ―オブジェクトを(色文字列の)行列に変換するメソッドがある.
ラスタ―オブジェクトは(お互い同士や色文字列との)等号や不等号比較が出来る.
ラスタ―オブジェクトと同じ次元の論理値行列を返す is.na メソッドがある.ある種(し
かし全てではない)のグラフィックスデバイスは NA 値を完全に透明な色として解釈する
ことを注意する.
6
axisTicks
Value
as.raster() に対してはラスタ―オブジェクト.
is.raster() に対しては x がラスタ―オブジェクトかどうかを指示する論理値.
Note
ラスタ―イメージは内部的には行優先で表現されており,それがラスタ―イメージを操
作する際混乱を招く可能性がある.推奨されるアプローチはラスターを行列に強制変換
し,処理を行い,それからラスターに戻すことである.
Examples
# 赤いグラディエント
as.raster(matrix(hcl(0, 80, seq(50, 80, 10)),
nrow = 4, ncol = 5))
# ベクトルは一次元行列 ...
#
文字列ベクトルは色名 ...
as.raster(hcl(0, 80, seq(50, 80, 10)))
#
数値ベクトルはグレイスケール ...
as.raster(1:5, max = 5)
#
論理値ベクトルは黒と白 ...
as.raster(1:10 %% 2 == 0)
# ... nrow/ncol が提供されない限り ...
as.raster(1:10 %% 2 == 0, nrow = 1)
# 行列はまた論理値や数値(又はバイト型)になり得る ...
as.raster(matrix(c(TRUE, FALSE), nrow = 3, ncol = 2))
as.raster(matrix(1:3/4, nrow = 3, ncol = 4))
# 配列は三次元数値平面(R, G, B 平面)になり得る ...
as.raster(array(c(0:1, rep(0.5, 4)), c(2, 1, 3)))
# ... 又は数値の4次元平面(R, G, B, A 平面)
as.raster(array(c(0:1, rep(0.5, 6)), c(2, 1, 4)))
# 部分抽出
r <- as.raster(matrix(colors()[1:100], ncol = 10))
r[, 2]
r[2:4, 2:5]
# 部分集合に付値
r[2:4, 2:5] <- "white"
# 比較
r == "white"
axisTicks
見栄えの良い軸チックスケールの計算
axisTicks
7
Description
伝統的な R グラフィックスが行うような,見栄えの良い軸スケールとチックマーク位置
を計算する.これは特に対数スケール軸に対して興味深い.
Usage
axisTicks(usr, log, axp = NULL, nint = 5)
.axisPars(usr, log = FALSE, nintLog = 5)
Arguments
usr
長さ 2 の数値ベクトルで,軸範囲 c(min, max) を持つ.
log
対数スケールが使用される(予定)じかどうかを指示する論理値.
axp
長さ 3 の数値ベクトル c(mi, ma, n.) で, par("?axp") と同じ意味(こ
こで ? は x か y)を持つ,つまり “見栄えの良い”軸範囲で, n. は整数コ
ード.
nint, nintLog
(おおよその)希望の区間数を指示する正整数. nintLog は log = TRUE
の場合だけ使われる.
Details
axisTicks(usr, *) は axp が欠損している時 .axisPars(usr, ..) を呼び出す.
Value
axisTicks() は長さがおおよそ nint+1 の可能な軸チックの数値ベクトルを返す.
.axisPars() は次の成分を持つリストを返す
axp
見栄えの良い軸範囲の長さ 2 の数値ベクトル c(min., max.).
n
整数(コード),par("?axp")[3] と同じ意味.
See Also
axTicks; axis そして par (パッケージ graphics から).
Examples
##--- グラフィックスの axis() とグラフィックスエンジンと
##--- 独立な axisTicks() の比較 :
require("graphics")
plot(10*(0:10)); (pu <- par("usr"))
aX <- function(side, at, ...)
axis(side, at = at, labels = FALSE, lwd.ticks = 2, col.ticks = 2,
tck = 0.05, ...)
aX(1, print(xa <- axisTicks(pu[1:2], log = FALSE))) # x 軸
aX(2, print(ya <- axisTicks(pu[3:4], log = FALSE))) # y 軸
axisTicks(pu[3:4], log = FALSE, n = 10)
plot(10*(0:10), log = "y"); (pu <- par("usr"))
aX(2, print(ya <- axisTicks(pu[3:4], log = TRUE)))
# y 軸
8
boxplot.stats
plot(2^(0:9), log = "y"); (pu <- par("usr"))
aX(2, print(ya <- axisTicks(pu[3:4], log = TRUE)))
boxplot.stats
# y 軸
箱型図統計量
Description
この関数は典型的に箱型図を作るのに必要な統計量を集めるために別の関数から呼び出
されるが,個別に起動することも出来る.
Usage
boxplot.stats(x, coef = 1.5, do.conf = TRUE, do.out = TRUE)
Arguments
x
箱型図がそれに対して作られる数値ベクトル (NA と NaN は許されるが取
り除かれる).
coef
これはプロットの ‘ヒゲ’が箱からどれだけ遠くに伸びるかを決める.
もし coef が正なら,ヒゲは箱から coef 倍の箱の長さを超えない極値
まで伸びる.値がゼロならばヒゲはデータの極値まで伸びる (そして外
れ値は返されない).
do.conf, do.out
論理値;もし FALSE なら, conf 又は out 成分はそれぞれ結果中に無
い.
Details
二つの‘ヒンジ’は第1と第3四分偏差のバージョンである,つまり quantile(x, c(1,3)/4)
に近い.ヒンジは奇数の n (ここで n <- length(x)) に対しては四分偏差に等しいが偶数
の n に対しては異なる.四分偏差は n %% 4 == 1 (n ≡ 1 mod 4) の時だけ観測値に一致す
るが,ヒンジは更に n %% 4 == 2 (n ≡ 2 mod 4) の時も一致する,そしてさもなければ二
つの観測値の中央にある.
ノッチ(もし要求されれば)は +/-1.58 IQR/sqrt(n) に広がる.これは Chambers et al (1983,
p. 62), McGill et al (1978, p. 16) 中の 1.57 を用いた公式と同じ計算に基づいているように見
える.これらはメディアンの漸近正規性に基づいており,おおよそ比較される二つのメ
ディアンに対する標本サイズに等しく,標本の基礎にある分布にかなり依存しないと言
われている.アイデアは二つのメディアンの差のおおよその 95% 信頼区間を与えること
のように思われる.
Value
次のような成分を持つリスト:
stats
長さ 5 のベクトルで,下側ヒゲの極値,下側‘ヒンジ’,メディアン,上
側 ‘ヒンジ’ そして上側ヒゲの極値.
n
標本中の非 NA 観測値数.
conf
‘ノッチ’の上下の極値 (if(do.conf)).詳細節を見よ.
cairo
out
9
ヒゲの極値の外側にあるデータ店の値 (if(do.out)).
$stats と $conf は S とは異なり増加順にソートされており,$n と $out は任意の +- Inf
値を含むことを注意する.
References
Tukey, J. W. (1977) Exploratory Data Analysis. Section 2C.
McGill, R., Tukey, J. W. and Larsen, W. A. (1978) Variations of box plots. The American Statistician 32, 12–16.
Velleman, P. F. and Hoaglin, D. C. (1981) Applications, Basics and Computing of Exploratory Data
Analysis. Duxbury Press.
Emerson, J. D and Strenio, J. (1983). Boxplots and batch comparison. Chapter 3 of Understanding
Robust and Exploratory Data Analysis, eds. D. C. Hoaglin, F. Mosteller and J. W. Tukey. Wiley.
Chambers, J. M., Cleveland, W. S., Kleiner, B. and Tukey, P. A. (1983) Graphical Methods for Data
Analysis. Wadsworth & Brooks/Cole.
See Also
fivenum, boxplot, bxp.
Examples
require(stats)
x <- c(1:100, 1000)
(b1 <- boxplot.stats(x))
(b2 <- boxplot.stats(x, do.conf = FALSE, do.out = FALSE))
stopifnot(b1 $ stats == b2 $ stats) # do.out = FALSE は依然頑健
boxplot.stats(x, coef = 3, do.conf = FALSE)
## 外れ値処理なし:
boxplot.stats(x, coef = 0)
boxplot.stats(c(x, NA)) # 僅かな変更:n は 101
(r <- boxplot.stats(c(x, -1:1/0)))
stopifnot(r$out == c(1000, -Inf, Inf))
cairo
カイロデバイス
Description
cairo グラフィックス API を用いた SVG, PDF そして PostScript グラフィックスファイル
に対するグラフィックスデバイス.
10
cairo
Usage
svg(filename = if(onefile) "Rplots.svg" else "Rplot%03d.svg",
width = 7, height = 7, pointsize = 12,
onefile = FALSE, family = "sans", bg = "white",
antialias = c("default", "none", "gray", "subpixel"))
cairo_pdf(filename = if(onefile) "Rplots.pdf" else "Rplot%03d.pdf",
width = 7, height = 7, pointsize = 12,
onefile = FALSE, family = "sans", bg = "white",
antialias = c("default", "none", "gray", "subpixel"),
fallback_resolution = 300)
cairo_ps(filename = if(onefile) "Rplots.ps" else "Rplot%03d.ps",
width = 7, height = 7, pointsize = 12,
onefile = FALSE, family = "sans", bg = "white",
antialias = c("default", "none", "gray", "subpixel"),
fallback_resolution = 300)
Arguments
filename
出力ファイルの名前.既定であるように,もし C 整数書式が文字列に
含まれればページ番号が含められる. (結果は PATH_MAX 文字長以下で
なければならず,もしそうでなければ切り詰められるかもしれない.
詳細は postscript を見よ.) プラットフォームがサポートすればチル
ダ展開が行われる.
width
インチ単位のデバイスの幅.
height
インチ単位のデバイスの高さ.
pointsize
プロット文字の既定ポイントサイズ(ビッグポイント単位).
onefile
全てのプロットは一つのファイルに現れるべきか,それとも別のファ
イルにか?
family
デバイス依存でないフォントファミリの一つ, "sans", "serif" そして
"mono",又はシステムに依存しない仕方で探されるフォントファミリ
を指定する文字列.
(Unix の場合) X11 に対するヘルプの‘Cairo フォント’節を見よ.
bg
初期背景色: par("bg") の設定で上書きできる.
antialias
文字列,使われる(もしあれば)アンチエイリアシングのタイプ;既定で
は "default".
fallback_resolution
数値:ビットマップ出力に切り替わる際の dpi 単位の解像度.R 3.3.0
以前ではこれは cairo の実装に依存したが普通 300 だった.
Details
SVG (Scalar Vector Graphics) はベクターグラフィックスに対する W3C 標準である.
http://www.w3.org/Graphics/SVG/ を見よ.svg からの出力は onefile = FALSE (既定)に
対しては SVG バージョン 1.1 で,さもなければ SVG 1.2 である. (複数ページ SVG を表
示できる SVG ビューアーは殆ど無い.)
postscript や pdf とは異なり, cairo_pdf と cairo_ps はある場合にはベクトルグラフィ
ックスではなくビットマップを記録する.他方で(適当なプラットフォームで上では)そ
cairo
11
れらは広範囲の UTF-8 グリフを含むことが出来,使われるフォントを埋め込むことが出
来る.
cairo_ps(onefile = FALSE) が生み出す出力は cairo >= 1.6 を持つプラットフォームでは
encapsulated ポストスクリプトである.
R はこれらのデバイスに対するサポートどれも無しでコンパイル出来る:サポートされ
ていないシステム上でこれらを使おうと試みると報告が出る.これらは全て cairo バージ
ョン 1.2 (2006年から)又はそれ以降を必要とする.
これらのデバイスのどれかで一ページ以上をプロットしようとし, file 中に %d のよう
な系列番号を含めなければ(又は onefile = TRUE を設定すると) ファイルは最後のプロッ
トを含む.
半透明に対する完全なサポートがあるが,これを使うのはビットマップ出力を惹き起こ
しやすい事柄の一つである (そして cairo_ps に対しては常にそうなる).
Value
プロットデバイスが開かれる: R インタプリタには何も返されない.
アンチエイリアシング
アンチエイリアシングはグラフィックスとフォントの双方に適用される.これは一般に
線とテキストに対しては好ましいが,塗りつぶし,例えば image プロット,に対しては
好ましくない効果を生むかもしれないので塗りつぶしには決して使われない.
antialias = "default" は原則としてプラットフォームで依存であるが,最もしばしば
antialias = "gray" に等しいように見える.
慣例
この節は “R Internals Manual” で設定されているグラフィックスデバイスに対する慣例の
移植を説明している.
• ピクセル(svg)又はインチ単位の既定デバイスサイズ.
• 大きな点に対するフォントサイズ.
• 既定のフォントファミリは Helvetica.
• 線幅は 1/96 インチの倍数.
• 円の最少半径は 1/72 インチ.
• 色はそれを眺めるアプリケーションにより解釈される.
Note
Cairo 1.2.4 (Centos/RHEL 5 中で見られる)は不正な SVG 出力を与えることが知られてい
る.
原則としてこれらのデバイスは X11 と独立(Windows で使われていることから分かるよう
に)である.しかし Unix 風システムでは cairo ライブラリは X11 システムの一部として配
布されているかもしれず(OS X や XQuartz 上)それをインストールする必要があるかもし
れない.
See Also
Devices, dev.print, pdf, postscript
cairo がサポートされているかどうかを知るには capabilities.
12
check.options
check.options
オプションの一貫性チェック
Description
幾らかの一貫性チェック付きでオプションを設定するユーティリティ関数. new 中の新
しい設定の属性は name.opt 中の model (しばしば既定)リストとの一貫性をチェックされ
る.
Usage
check.options(new, name.opt, reset = FALSE, assign.opt = FALSE,
envir = .GlobalEnv,
check.attributes = c("mode", "length"),
override.check = FALSE)
Arguments
new
名前付きリスト.
name.opt
既定リストを含む R オブジェクトの名前を持つ文字列.
reset
論理値;もし TRUE なら,オプションを name.opt からリセットする.
もし名前 name.opt の R オブジェクトが複数あれば,最初のものを
search() パスから除く.
assign.opt
論理値;もし TRUE なら . . . を付値する.
envir
get と assign に対して使われる環境.
check.attributes
check.options がチェックすべき属性を含む文字列.
override.check 長さ length(new) の論理値ベクトル (又はリサイクルを意味する 1).
override.check[i] == TRUE である new[i] に対してはチェックは上書
きされ変更がともかくなされる.
Value
呼びだされた name.opt と同じ名前の成分を持つリスト.成分の値はそれらがチェックを
パスする限り new リストから変更される (これらが override.check に従って上書きされ
ない時は).
Note
アプリケーションではそれは NULL や可変長文字列ベクトルであったりするため,オプシ
ョン "names" は全てのチェックや警告を免れる.
Author(s)
Martin Maechler
See Also
check.options を使う ps.options と pdf.options.
chull
13
Examples
(L1 <- list(a = 1:3, b = pi, ch = "CH"))
check.options(list(a = 0:2), name.opt = "L1")
check.options(NULL, reset = TRUE, name.opt = "L1")
chull
点集合の凸包
Description
指定された点集合の凸包上に位置する点の部分集合を計算する.
Usage
chull(x, y = NULL)
Arguments
x, y
点の座標ベクトル.これはベクトル x と y,二列の行列 x,二つの成分
を持つリスト等として指定できる, xy.coords を見よ.
Details
xy.coords は点の指定を解釈するのに使われる.無現値,NaN 値は許されない.
アルゴリズムは Eddy (1977) のそれである.
Value
凸包上に位置するユニークな点の添字を与える整数ベクトル,反時計回り. (最初の点は
重複点として返される.)
References
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth &
Brooks/Cole.
Eddy, W. F. (1977) A new convex hull algorithm for planar sets. ACM Transactions on Mathematical Software, 3, 398–403.
Eddy, W. F. (1977) Algorithm 523. CONVEX, A new convex hull algorithm for planar sets[Z].
ACM Transactions on Mathematical Software, 3, 411–412.
See Also
xy.coords, polygon
14
col2rgb
Examples
X <- matrix(stats::rnorm(2000), ncol = 2)
chull(X)
## Not run:
# graphics パッケージからの使用例
plot(X, cex = 0.5)
hpts <- chull(X)
hpts <- c(hpts, hpts[1])
lines(X[hpts, ])
## End(Not run)
cm
インチからセンチメートルへの単位変換
Description
インチから cm (センチメートル)へ単位を変換する.
Usage
cm(x)
Arguments
x
数値ベクトル
Examples
cm(1)
# = 2.54
## cm *から*インチへの変換:
10 / cm(1) # -> 10cm は 3.937 インチ
col2rgb
色を RGB に変換
Description
R の色を RGB (red/green/blue) に変換する.
Usage
col2rgb(col, alpha = FALSE)
col2rgb
15
Arguments
col
三種類の R の色指定のどれかのベクトル.つまり色名(colors() でリ
ストされるような),形式 "#rrggbb" の16進文字列,又は "#rrggbbaa"
(rgb を見よ),又は palette()[i] を意味する正整数 i.
alpha
アルファチャンネル(不透明度)値を返すべきかどうかを指示する論理
値.
Details
NA (整数か文字列としての)と "NA" は透明を意味する.
これらの三つのタイプの一つでない col の値は強制変換される:実数ベクトルは整数に,
他は文字列に変換される. (R 3.0.2 以前では因子はそれらの整数コードに強制変換され
た:全てのその他のケースでは変換時にクラスは依然無視される.)
ゼロ又は負の col 値はエラーになる.
Value
三つか四つの行(alpha = TRUE に対して)と col の長さの列数を持つ整数行列.もし col
が名前を持てば,これらは返り値の列名に使われる.
Author(s)
Martin Maechler と R core チーム.
See Also
rgb, colors, palette 等.
新しいより柔軟なインタフェイス convertColor().
Examples
col2rgb("peachpuff")
col2rgb(c(blu = "royalblue", reddish = "tomato"))
col2rgb(1:8)
# 注意:colnames
# palette() からのもの(もし既定なら)
col2rgb(paste0("gold", 1:4))
col2rgb("#08a0ff")
## 色指定の三種類すべて:
col2rgb(c(red = "red", hex = "#abcdef"))
col2rgb(c(palette = 1:3))
##-- 入門的でない例 -grC <- col2rgb(paste0("gray", 0:100))
table(print(diff(grC["red",]))) # '2' または '3':ほとんど等間隔
## '名前付き'グレイは中間に {"slate gray" は厳格にはグレイではない}
col2rgb(c(g66 = "gray66", darkg = "dark gray", g67 = "gray67",
g74 = "gray74", gray =
"gray", g75 = "gray75",
g82 = "gray82", light = "light gray", g83 = "gray83"))
crgb <col2rgb(cc <- colors())
colnames(crgb) <- cc
16
colorRamp
t(crgb)
# 全ての表
ccodes <- c(256^(2:0) %*% crgb) # = 内部コード
## 幾つの名前が互いに'別名'か:
table(tcc <- table(ccodes))
length(uc <- unique(sort(ccodes))) # 502
## 全ての重複した色:
mult <- uc[tcc >= 2]
cl <- lapply(mult, function(m) cc[ccodes == m])
names(cl) <- apply(col2rgb(sapply(cl, function(x)x[1])),
2, function(n)paste(n, collapse = ","))
utils::str(cl)
## Not run:
if(require(xgobi)) { ## 色立方体をダイナミックに:
tc <- t(crgb[, !duplicated(ccodes)])
table(is.gray <- tc[,1] == tc[,2] & tc[,2] == tc[,3]) # (397, 105)
xgobi(tc, color = c("gold", "gray")[1 + is.gray])
}
## End(Not run)
colorRamp
色の補間
Description
これらの関数は与えられた色のセットを補間して新しい色パレットを作る関数 (topo.colors
のように),そして区間 [0, 1] を色にマップする関数 (grey のように)を返す.
Usage
colorRamp(colors, bias = 1, space = c("rgb", "Lab"),
interpolate = c("linear", "spline"), alpha = FALSE)
colorRampPalette(colors, ...)
Arguments
colors
補間すべき色; col2rgb() に対する適正な引数でなければならない.
bias
正数.より大きな値は上端でより広い間隔の色を与える.
space
文字列: RGB か CIE Lab 色空間での補間.
interpolate
スプラインか線形補間を使う.
alpha
論理値:アルファチャンネル(不透明度)値を返すべきか? もし space が
指定されていると真の値を与えることはエラーになる.
...
colorRamp に渡される引数.
Details
CIE Lab 色空間はおおよそ概念的に一様であり,従ってより滑らかで一様な色の傾斜を
与える.他方で一つの色調から他へ白色により変化するパレットは RGB 空間でより対称
的な概観を持つかもしれない.
colorRamp
17
この関数中の変換公式は完全には正確とは思われず,色の傾斜は Lab 空間中の極値には
到達しないかもしれない. R の色モデルの更なる変更は space = "Lab" で作られる色を
変更するかもしれない.
引数 alpha は R 3.1.0 で導入された.
Value
colorRamp は 0 と 1 の間の値のベクトルを引数に取る関数を返し,各色毎に一行を持ち 3
又は 4 列の RGB カラーの数値行列にマップする.
colorRampPalette は整数引数(必要な色の数)を引数に取り与えられた系列を補間する
(heat.colors や terrain.colors に類似する)色の文字列ベクトル(rgb を見よ)を返す関数
を返す.
See Also
補間の良い出発点はパッケージ RColorBrewer 中の “系列的”で“拡散”する ColorBrewer パ
レットである.
splinefun 又は approxfun が補間に使われている.
Examples
## 両者は*関数*を返す:
colorRamp(c("red", "green"))( (0:4)/4 ) ## (x) , x in [0,1]
colorRampPalette(c("blue", "red"))( 4 ) ## (n)
## 不透明の青色の傾斜
colorRampPalette(c(rgb(0,0,1,1), rgb(0,0,1,0)), alpha = TRUE)(8)
require(graphics)
## ここで space="rgb" は意図的に飽和度だけが変化するパレットを与える.
## space="Lab" ならばステップはより一様だが,
## hue は少々紫がかっている.
filled.contour(volcano,
color.palette =
colorRampPalette(c("red", "white", "blue")),
asp = 1)
filled.contour(volcano,
color.palette =
colorRampPalette(c("red", "white", "blue"),
space = "Lab"),
asp = 1)
## '系列的'な ColorBrewer パレットを補間する
YlOrBr <- c("#FFFFD4", "#FED98E", "#FE9929", "#D95F0E", "#993404")
filled.contour(volcano,
color.palette = colorRampPalette(YlOrBr, space = "Lab"),
asp = 1)
filled.contour(volcano,
color.palette = colorRampPalette(YlOrBr, space = "Lab",
bias = 0.5),
asp = 1)
## 'jet.colors' は " Matlab に似る"
## (and hurting the eyes by over-saturation)
jet.colors <-
18
colors
colorRampPalette(c("#00007F", "blue", "#007FFF", "cyan",
"#7FFF7F", "yellow", "#FF7F00", "red", "#7F0000"))
filled.contour(volcano, color = jet.colors, asp = 1)
## space="Lab" は色が自然な系列をなさない時役立つ
m <- outer(1:20,1:20,function(x,y) sin(sqrt(x*y)/3))
rgb.palette <- colorRampPalette(c("red", "orange", "blue"),
space = "rgb")
Lab.palette <- colorRampPalette(c("red", "orange", "blue"),
space = "Lab")
filled.contour(m, col = rgb.palette(20))
filled.contour(m, col = Lab.palette(20))
colors
色名
Description
R が知っている組み込みの色名を返す.
Usage
colors (distinct = FALSE)
colours(distinct = FALSE)
Arguments
distinct
返 さ れ る 色 は 全 て 異 な る べ き か ど う か を 指 示 す る 論 理 値: 例 え ば
"snow" と "snow1" は実効的には (0 : 255)3 RGB 空間で同じ点になる.
Details
色名はグラフィックス関数中の col= 指定で使われる.
更 に 広 範 囲 の 色 が プ リ ミ テ ィ ブ な rgb, hsv そ し て hcl で 作 る こ と が 出 来 る. 又 は
rainbow, heat.colors 等から導ける.
Value
全ての組み込みの色名を含む文字列ベクトル.
See Also
par(col=<num>) に対する色‘パレット’の設定には palette;良い例には rgb, hsv, hcl,
gray; rainbow;そしてイメージは heat.colors, topo.colors.
RGB 数への変換と例は col2rgb.
contourLines
19
Examples
cl <- colors()
length(cl); cl[1:20]
length(cl. <- colors(TRUE))
## 657 種類の名前付き色の内僅か 502 種類
## ----------- 全ての名前付き色とその他:
demo("colors")
## -----------
contourLines
等高線を計算
Description
与えられたデータのセットに対し等高線を計算.
Usage
contourLines(x = seq(0, 1, length.out = nrow(z)),
y = seq(0, 1, length.out = ncol(z)),
z, nlevels = 10,
levels = pretty(range(z, na.rm = TRUE), nlevels))
Arguments
x, y
z 中の値が測られるグリッド線の位置.これらは上昇順でなければなら
ない.既定では 0 から 1 までの等間隔の値が使われる.もし x が list
ならば,その成分 x$x と x$y がそれぞれ x と y として使われる.もし
リストが成分 z を持てば,これは z として使われる.
z
プロットされるべき値をもつ行列 (NA が許される).便宜上 x を z の代
わりに使うことが出来る.
nlevels
levels が提供されないとき,そしてその時だけ希望の等高線水準の
数.
levels
等高線を描く水準の数値ベクトル.
Details
contourLines は何も描かず,等高線のセットを返す.
現在アルゴリズムに関するドキュメントは無い.ソースコードは ‘R_HOME/src/main/plot3d.c’
にある.
Value
等高線のリスト.各等高線は次の要素を持つリスト:
level
等高線の水準.
x
等高線の x 座標.
y
等高線の y 座標.
20
convertColor
See Also
単一の等高線の最大複雑度に対しては options("max.contour.segments").
contour.
Examples
x <- 10*1:nrow(volcano)
y <- 10*1:ncol(volcano)
contourLines(x, y, volcano)
convertColor
色空間中の変換
Description
標準的な色空間の表現間で色を変換する.
Usage
convertColor(color, from, to, from.ref.white, to.ref.white,
scale.in = 1, scale.out = 1, clip = TRUE)
Arguments
color
行が色を指定する行列.
from, to
入力と出力色空間.下の‘詳細’節を見よ.
from.ref.white, to.ref.white
RGB空間のようにもしそれ等が定義に組み込まれているのなら参照白
または NULL. D65 が既定値.他については‘詳細’節を見よ.
scale.in, scale.out
入力は scale.in で割られ,出力は scale.out 倍される.入力や出力が
数値で無ければスケーリングを抑制するには NULL を使う.
clip
もし TRUE なら,RGB 出力を [0,1] に切り詰める, FALSE は範囲外の
RGB を返す,NA は範囲外の色を NaN に設定する.
Details
色空間は クラ ス colorConverter の オブ ジ ェ クト で指定さ れ, colorConverter 又は
make.rgb で作られる.組み込みの色空間は文字列で参照出来る:"XYZ", "sRGB", "Apple RGB",
"CIE RGB", "Lab", "Luv".これらの色空間に対する変換関数はオブジェクト colorspaces
中にある.
"sRGB" 色空間は標準の PC モニターで使われるものである. "Apple RGB" は Apple モニ
ターで使われる."Lab" と "Luv" は Commission Internationale d’Eclairage で標準化された
おおよそ感覚的に一様な空間である. XYZ は 1931 CIE 標準で全ての可視の色を表現でき
るが,感覚的に一様ではない.
Lab と Luv 空間はオブジェクトの色を記述し,従って ‘白色’色を参照する必要がある.発
光性の D65 は標準の間接光の昼光色,発光性の D50 は直射日光に近く,発光性の A 白熱
電球からの光である.他の標準の CIE 発光色は B, C, E そして D55 をサポートしている.
convertColor
21
RGB 色空間は特定の参照白色に関して定義されており,他の参照白色に近似的にしか変
換できない. Bradford の色彩適合アルゴリズムがこれに対して使われる.
RGB 色空間は特定のクラスのディスプレイに固有である. RGB 空間は全ての色を表現
できず, clip オプションは範囲外の色をどうするかを制御する.
名前付きの色空間に対しては color は from 色空間中の値の行列でなければならない:特
に不透明色.
Value
行が色を指定する3列の行列.
References
全ての変換式については http://www.brucelindbloom.com/.
白点については http://www.efg2.com/Lab/Graphics/Colors/Chromaticity.htm.
See Also
グラフィックス中の色の指定法は col2rgb と colors.
他の色空間の指定には make.rgb.
Examples
## Lab 空間の四つの平面からの表示可能な色
ab <- expand.grid(a = (-10:15)*10,
b = (-15:10)*10)
require(graphics); require(stats) # na.omit に対して
par(mfrow = c(2, 2), mar = .1+c(3, 3, 3, .5), mgp = c(2,
.8,
0))
Lab <- cbind(L = 20, ab)
srgb <- convertColor(Lab, from = "Lab", to = "sRGB", clip = NA)
clipped <- attr(na.omit(srgb), "na.action")
srgb[clipped, ] <- 0
cols <- rgb(srgb[, 1], srgb[, 2], srgb[, 3])
image((-10:15)*10, (-15:10)*10, matrix(1:(26*26), ncol = 26), col = cols,
xlab = "a", ylab = "b", main = "Lab: L=20")
Lab <- cbind(L = 40, ab)
srgb <- convertColor(Lab, from = "Lab", to = "sRGB", clip = NA)
clipped <- attr(na.omit(srgb), "na.action")
srgb[clipped, ] <- 0
cols <- rgb(srgb[, 1], srgb[, 2], srgb[, 3])
image((-10:15)*10, (-15:10)*10, matrix(1:(26*26), ncol = 26), col = cols,
xlab = "a", ylab = "b", main = "Lab: L=40")
Lab <- cbind(L = 60, ab)
srgb <- convertColor(Lab, from = "Lab", to = "sRGB", clip = NA)
clipped <- attr(na.omit(srgb), "na.action")
srgb[clipped, ] <- 0
cols <- rgb(srgb[, 1], srgb[, 2], srgb[, 3])
image((-10:15)*10, (-15:10)*10, matrix(1:(26*26), ncol = 26), col = cols,
xlab = "a", ylab = "b", main = "Lab: L=60")
Lab <- cbind(L = 80, ab)
srgb <- convertColor(Lab, from = "Lab", to = "sRGB", clip = NA)
22
densCols
clipped <- attr(na.omit(srgb), "na.action")
srgb[clipped, ] <- 0
cols <- rgb(srgb[, 1], srgb[, 2], srgb[, 3])
image((-10:15)*10, (-15:10)*10, matrix(1:(26*26), ncol = 26), col = cols,
xlab = "a", ylab = "b", main = "Lab: L=80")
cols <- t(col2rgb(palette())); rownames(cols) <- palette(); cols
zapsmall(lab <- convertColor(cols, from = "sRGB", to = "Lab", scale.in = 255))
stopifnot(all.equal(cols, # 元に変換し直す.オリジナルを得るd:
round(convertColor(lab, from = "Lab", to = "sRGB", scale.out = 255)),
check.attributes = FALSE))
densCols
平滑化密度プロットに対する色
Description
densCols は散布図の各点に於ける局所密度を表現する色を含むベクトルを作る.
Usage
densCols(x, y = NULL, nbin = 128, bandwidth,
colramp = colorRampPalette(blues9[-(1:3)]))
blues9
Arguments
x, y
引数 x と y は点の x と y 座標を与える.任意の合理的な座標の与え方
が認められる.詳細は関数 xy.coords を見よ.もしこべテウに与えら
れれば,同じ長さでなければならない.
nbin
長さ1か2(x と y 個別に)の数値ベクトルで,密度推定に対する等間隔の
グリッド点の数を指定する; bkde2D() 中の gridsize として直接に使
われる.
bandwidth
平滑バンド幅の(長さ 1 か 2)の数値ベクトル. もし欠損していれば,
多かれ少なかれ有用な既定値が使われる. bandwidth は続いて関数
bkde2D に渡される.
colramp
整数 n を引数として受け入れ n 個の色を返す関数.
Details
densCols はパッケージ KernSmooth からの bkde2D(*, bandwidth, gridsize = nbin, ..)
の呼び出しによるプロット中で使われる色のセットを計算し返す.
blues9 はプロットで既定として使われる青の9色の陰影のセットである.
Value
densCols は引き続く散布図中で使われる色を含む長さ nrow(x) のベクトルを返す.各色
は対応する点のまわりの局所密度を表す.
Author(s)
オリジナルは FHCRC のFlorian Hahne
dev
23
See Also
パッケージ KernSmooth からの bkde2D,更に densCols と同じ計算に基づく smoothScatter()
(パッケージ graphics).
Examples
x1
x2
x
<- matrix(rnorm(1e3), ncol = 2)
<- matrix(rnorm(1e3, mean = 3, sd = 1.5), ncol = 2)
<- rbind(x1, x2)
dcols <- densCols(x)
graphics::plot(x, col = dcols, pch = 20, main = "n = 1000")
dev
複数のグラフィックスデバイスを制御する関数
Description
これらの関数は複数のグラフィックスデバイスの制御を提供する.
Usage
dev.cur()
dev.list()
dev.next(which = dev.cur())
dev.prev(which = dev.cur())
dev.off(which = dev.cur())
dev.set(which = dev.next())
dev.new(..., noRStudioGD = FALSE)
graphics.off()
Arguments
which
デバイス番号を指定する整数.
...
選択されたデバイスに渡される引数.
noRStudioGD
RStudio グラフィックスをたとえそれが既定とされていても使用しな
い:これは width や height といった引数を受け入れない.
Details
ただ一つのデバイスだけが‘アクティブ’なデバイスである:これは全てのグラフィック
ス操作が行われるデバイスである.常に開かれている "null device" があるがこれは実
際は代替物である:それを使うあらゆる試みは getOption("device")) で指定される新し
いデバイスを開く.
デバイスには名前(例えば "X11" や "postscript") そして範囲 1 から 63 の番号が伴う:
"null device" は常にデバイス 1 である.一旦一つのデバイスが開かれていると null デバ
イスは可能なアクティブデバイスとは考えらない.開かれているデバイスのリストがあ
り,これは null デバイスを含まない巡回的なリストと考えられる. dev.next と dev.prev
は如何なるデバイスも開かれていなければ適当な方向での次のデバイスを選ぶ.
24
dev
dev.off は指定された(既定では現在の)デバイスを閉じる.もし現在のデバイスが閉じら
れ任意の他のデバイスが開かれると,次の開かれたデバイスが現在のデバイスとされる.
デバイス 1 を閉じるのはエラーになる. graphics.off() は全ての開かれたグラフィック
スデバイスを閉じる.セッションの正常な終了は内部的に graphics.off() と同値なもの
を実行する.
dev.set は指定されたデバイスをアクティブなデバイスにする.もしその番号のデバイ
スが存在しなければ,それは dev.next と同値である.もし which = 1 ならばそれは新し
いデバイスを開きそれを選択する.
dev.new は新しいデバイスを開く.通常 R は必要なときは新しいデバイスを自動的に開
くが,これは更なるデバイスをプラットホーム依存の仕方で開くことを可能にする.
(そのデバイスが使われるかは getOption("device") を見よ.) pdf と postscript のよう
なファイルベースのデバイスと, ‘Rplots.pdf’, ‘Rplots1.pdf’, . . . , ‘Rplots999.pdf’ のよ
うなファイル名が順番に試みられる時は注意がいる.名前付きの引数でデバイスの引数
リストにマッチした時だけデバイスに渡される.,その場合も,例えば width の解釈に
は注意がいり,標準のビットマップデバイスに対してはどちらも提供されていなければ
units = "in", res = 72 が強制されるが, width と height の双方が提供されていれば
その限りではない.
Value
dev.cur はアクティブなデバイスの番号と名前を与える長さ1の名前付き整数ベクトルを
返す.もしどれもアクティブでなければ null デバイスの 1 を返す.
dev.list は全ての開かれているデバイスの番号を返す.例外は null デバイスの 1.これ
はデバイス名を与える names 属性を持つ数値ベクトルである,又は開かれたデバイスが
無ければ NULL.
dev.next と dev.prev はデバイスリスト中の次/前のデバイスの番号と名前を返す.これ
は開かれたデバイスが一つもない時そしてその時だけ null デバイスである.
dev.off は新しいアクティブなデバイスの番号と名前を返す (指定されたデバイスが閉じ
られた後に).
dev.set は新しいアクティブなデバイスの番号と名前を返す.
dev.new は開かれている開かれているデバイスの返り値を返す,普通不可視の NULL.
See Also
postscript 等の Devices.
現在のデバイス上のプロット領域を設定するには layout とそのリンク.
Examples
## Not run: ## Unix 固有の例
x11()
plot(1:10)
x11()
plot(rnorm(10))
dev.set(dev.prev())
abline(0, 1) # 1:10 の点通って
dev.set(dev.next())
abline(h = 0, col = "gray") # 残差プロットには
dev.set(dev.prev())
dev.off(); dev.off() #- 二つの X デバイスを閉じる
## End(Not run)
dev.capabilities
dev.capabilities
25
グラフィックスデバイスの機能の問い合わせ
Description
現在のグラフィックスデバイスの機能を問い合わせる.
Usage
dev.capabilities(what = NULL)
Arguments
what
‘値’節に挙げられた成分の名前に部分的にマッチする文字列,又は全て
の利用可能な機能を羅列するには NULL.
Details
機能は,それらが欠損したフックから導かれるのでなければ,グラフィックスデバイス
の作者により指定されなければならない.従ってそれらはしばしば NA として返され,数
種類の出力書式が一つのデバイスでサポートされている基礎にあるデバイスの最大の機
能を反映するかもしれない.
最近の殆どのデバイスはグラフィックス書式がサポートする (PostScript はしない)半透明
色をサポートする.他方で, (完全又は半)透明の背景をサポートするグラフィックスは
相対的に殆ど無い:一般に後者は PDF と PNG プロットのみで見出される.
Value
次の成分の全てもしくは一部を持つ名前付きリストで,どれかは値 NA を取るかもしれな
い:
semiTransparency
論理値:デバイスは半透明色をサポートするか?
transparentBackground
文字列:デバイスは (半)透明の背景をサポートするか? 可能な値は
"no", "fully" (完全な透明のみ) そして "semi" (半透明背景色がサポー
トされている).
rasterImage
文字列:デバイスはどの程度 rasterImage と grid.raster で使われる
ラスタ―イメージをサポートするか? 可能な値は "no", "yes" そして
"non-missing" (欠損値のない配列に対してだけサポート).
capture
論理値:現在のデバイスは grid.cap が使うようなラスタ―キャプチャ
ーをサポートするか?
locator
論理値:現在のデバイスは locator と identify をサポートするか?
events
文字列:このデバイス上ではどのようなイベントが生成可能か? 現在こ
れは c("MouseDown", "MouseMove", "MouseUp", "Keybd") の部分集合
であるが,将来他のイベントがサポートされるかもしれない.
See Also
対話的なイベントに関する詳細は getGraphicsEvent を見よ.
26
dev.flush
Examples
dev.capabilities()
dev.capture
デバイス出力をラスタ―イメージに捕捉
Description
dev.capture はグラフィックスデバイスの現在の内容をラスタ―(ビットマップ)イメージ
に捕捉する.
Usage
dev.capture(native = FALSE)
Arguments
native
論理値.もし FALSE ならば結果は R の色名の配列であり,もし TRUE な
ら出力はプロットに対してより効率的であるが可搬性が無い nativeRaster
オブジェクトになる.
Details
全てのデバイスがラスタ―ビットマップとしての出力の捕捉をサポートするわけではな
い.典型的にはイメージベースのデバイスだけであり,しかも全てではない.
Value
デバイスが捕捉をサポートしていなければ NULL で,さもなければ色名の行列 (native = FALSE)
又は nativeRaster オブジェクト (native = TRUE に対して).
dev.flush
スクリーン上のグラフィックスデバイスに出力をホールド・
フラッシュ
Description
これはある種のスクリーンデバイス上で出力をホールド/フラッシュする手段を与え,他
のデバイスでは無視される.
Usage
dev.hold(level = 1L)
dev.flush(level = 1L)
Arguments
level
整数 >= 0.ホールドレベルをそれだけ変更する量.負の値は黙ってゼ
ロに置き換えられる.
dev.interactive
27
Details
これを実装するデバイスはホールドレベルのスタックを保守する: dev.hold の呼び
出しはレベルを増やし, dev.flush はそれを減らす. ホールドレベルがゼロの時の
dev.hold の呼び出しはホールドレベルを増やしグラフィックスディスプレイを禁止す
る. dev.flush の呼び出しが全ての保留中のホールドをクリアする時スクリーンディス
プレイはリフレッシュされ通常の操作が復帰する.
これは cairo ベースのバッファリングを持つ X11 タイプに対して実装されている.ホール
ドレベルが正の時 ‘時計’カーソルがデバイスのウィンド上に置かれる.
これは OS X 上の quartz デバイスで利用できる.
これはバッファリングが選択された(既定) windows デバイスに対して実装される.ホー
ルドレベルが正の時 ‘ビジー’カーソルがデバイスのウィンド上に置かれる.
Value
変更後の現在のレベルが不可視で返される.ホールドレベルがサポートされていないデ
バイス上ではこれは 0.
dev.interactive
現在のデバイスは対話的か?
Description
現在のデバイス(又は開かれるもの)が対話的かどうかを検査する.
Usage
dev.interactive(orNone = FALSE)
deviceIsInteractive(name = NULL)
Arguments
orNone
name
論理値;もし TRUE ならば関数はまた .Device == "null device" で
getOption("device") が既知の対話的デバイス中にあれば TRUE を返
す.
文字列としての一つ又はそれ以上のデバイス名,又は存在するリスト
を与えるには NULL.
Details
X11 (Unix), windows (Windows) そして quartz (OS X, オンスクリーンタイプのみ)は対話的
と見做される.更に JavaGD (同名のパッケージから)と CairoWin と CairoX11 (パッケージ
Cairo から).パッケージのデバイスは deviceIsInteractive の呼び出しでリストに付け
加えることが出来る.
Value
dev.interactive() は論理値を返し,対話的な(スクリーン)デバイスが使用中の時そして
その時だけ TRUE となる.
deviceIsInteractive は name = NULL で無い限り不可視で既知の対話的デバイスのリス
トを更新する.
28
dev.size
See Also
自分のプラットフォームで利用可能なデバイスに対しては Devices.
Examples
dev.interactive()
print(deviceIsInteractive(NULL))
dev.size
デバイス面のサイズを見つける
Description
現在のデバイスのデバイス面の次元を見出す.
Usage
dev.size(units = c("in", "cm", "px"))
Arguments
units
返される値の単位 – inches, cm 又は pixels (デバイス単位).
Value
現在のデバイスの幅と高さを与える二要素の数値ベクトル;デバイスが無ければ新しい
物が dev.new() と同じように開かれる.
See Also
インチ単位のサイズ情報は par("din") で得られるが,これは使用中のグラフィックスの
サブシステムに独立にそれにアクセスする手段を与える. par("din") は新しいプロット
が開始した時だけ更新されるが, dev.size はオンスクリーンのデバイスのサイズが変更
されるに従いサイズを追跡する.
Examples
dev.size("cm")
dev2
dev2
29
複数のデバイス間でグラフィックスをコピー
Description
dev.copy は現在のデバイスのグラフィックスの内容を which で指定されるデバイス,又
は device (which と device の両方を指定するのはエラーになる) で指定される関数で作
られる新しいデバイスにコピーする. (もし現在のデバイス上で記録が停止されていれ
ば,コピーする内容はない:これはプロット無しか空のプロットになる.) コピーされた
デバイスは現在のデバイスになる.
dev.print は現在のデバイスのグラフィックスの内容を device で指定される関数で作ら
れる新しいデバイスにコピーし,それから新しいデバイスを閉じる.
dev.copy2eps は dev.print に似るがポートレイトの向き(horizontal = FALSE)の EPSF 出
力ファイルを作る. dev.copy2pdf は PDF 出力に対する類似物である.
dev.control はユーザがデバイス中のグラフィックス内容の記録を制御することを許す.
もし displaylist が "inhibit" ("enable") ならば記録はオフ(オン)になる.これを変更す
るのはプロットの最初でだけが安全である (新しいページの直前又は直後).最初スクリ
ーンデバイスに対しては記録はオンで,プリントデバイスに対してはオフである.
Usage
dev.copy(device, ..., which = dev.next())
dev.print(device = postscript, ...)
dev.copy2eps(...)
dev.copy2pdf(..., out.type = "pdf")
dev.control(displaylist = c("inhibit", "enable"))
Arguments
device
デバイス関数(例えば,x11, postscript, . . . ).
...
上の device 関数への引数: postscript への dev.copy2eps 引数と
dev.copy2pdf に対しては pdf への引数. dev.print に対しては,これ
は which を含み,既定で任意の postscript 引数を含む.
which
コピー先のデバイスを指定するデバイス番号.
out.type
出 力 デ バ イ ス 番 号: "pdf", "quartz" (あ る 種 の OS X ビ ル ド)又 は
"cairo" (Windows とある種の Unix 風システム, cairo_pdf を見よ)が可
能.
displaylist
文字列:唯一の適正な値は "inhibit" と "enable".
Details
これらの関数はデバイス領域をコピーしプロットをコピーするのではないことを注意す
る:デバイス面の背景色はコピーされるものの一部である.殆どのスクリーンデバイス
は既定で透明な背景を持ち,それは恐らく png のようなデバイスへコピーする際に必要
とされるものではない.
dev.copy2eps と dev.copy2pdf に対しては,width と height はそれ以外が指定されてい
ない限り現在のデバイスから取られる.もし width と height のどちらかだけが指定され
ると,他はコピーされるデバイスのアスペクト比を保つように補正される.既定のファ
イル名は Rplot.eps か Rplot.pdf であり, file 引数を指定することで上書きできる.
30
dev2
フォントファミリを予め指定する必要がある postscript と pdf のようなデバイスへの
コピーは特別な注意が必要になる – R はどのフォントファミリが使われていたかは知ら
ないので,それらは ... の一部として渡される fonts 引数で手動で指定する必要があ
る.同様に,もしコピーされるデバイスが family 引数付きで開かれていると,適当な
family 引数が ... 中に含められる必要がある.
dev.print に対する既定はポストスクリプトコピーを作りコピーすることである.これ
は options("printcmd") が適当に設定され,ポストスクリプトをプリントできるシステ
ムでないと動作しない:これをそのように設定するかは postscript を見よ. Windows
のユーザは dev.print(win.print) を使う方を好むかもしれない.
dev.print は以下が当てはまる場合はポストスクリプトのプリントを作る(既定)のに最も
有用である. file が指定されていない限りプロットがプリントされる. width, height
そして pointsize が指定されていない限り,プロットの次元は現在のデバイスから取ら
れ,用紙に適合するように必要なら縮小される. (pointsize はもしプロットが縮小され
るならば再スケール化される.) もし horizontal が指定されずプロットがその値を切り
替えることでフルサイズでプリントできるのならば,プロット領域を縮小する代わりに
これが行われる.
もし dev.print が指定された device で使われるのなら(postscript ですら),それは幅と
高さを dev.copy2eps と同様に設定する.これはデバイスが次元をインチで指定しない限
り適切ではない.特に units = "inches" が指定されない限り png, jpeg, tiff そして bmp
に対してそうである.
Value
dev.copy はコピーされたデバイスの名前と番号を返す.
dev.print, dev.copy2eps そして dev.copy2pdf はそこからコピーされたデバイスの名前
と番号を返す.
Note
殆どのデバイス(全てのスクリーンデバイスを含む)はデバイス中で起きた全てのグラフ
ィックス操作を記録するディスプレイリストを持つ. dev.copy はグラフィックスの内容
をディスプレイリストを一つのデバイスから別のデバイスにコピーすることでグラフィ
ックスの内容をコピーする.同様に.デバイスのサイズ変更に続くグラフィックスの内
容の自動再描画もディスプレイリストの内容に依存する.
dev.control("inhibit") の後では,グラフィックス操作はディスプレイリストに記録さ
れないので, dev.copy と dev.print は何もコピーせず,デバイスの内容はデバイスのサ
イズが変更されても自動的には再描画されない.
グラフィックス操作の記録は相対的にメモリーの観点から高く付くので,もしメモリー
使用が問題になるならば命令 dev.control("inhibit") は有用になり得る.
See Also
dev.cur そして他の dev.xxx 関数.
Examples
## Not run:
x11() # Unix 風システムで
plot(rnorm(10), main = "Plot 1")
dev.copy(device = x11)
mtext("Copy 1", 3)
dev.print(width = 6, height = 6, horizontal = FALSE) # それをプリント
dev2bitmap
31
dev.off(dev.prev())
dev.off()
## End(Not run)
dev2bitmap
ビットマップファイルに対するグラフィックスデバイス
Description
bitmap はグラフィックスファイルを作る. dev2bitmap は現在のグラフィックスデバイ
スをグラフィックス書式のファイルにコピーする.
Usage
bitmap(file, type = "png16m", height = 7, width = 7, res = 72,
units = "in", pointsize, taa = NA, gaa = NA, ...)
dev2bitmap(file, type = "png16m", height = 7, width = 7, res = 72,
units = "in", pointsize, ...,
method = c("postscript", "pdf"), taa = NA, gaa = NA)
Arguments
file
出力ファイル名,適当な拡張子を持つ.
type
ビットマップのタイプ.
width, height
ディスプレイ領域の次元.
res
解像度,インチあたりのドット数.
units
height と width で用いるられる単位. in (インチ), px (pixels), cm 又は
mm が可能.
pointsize
テキストに使われる点のサイズ:既定では幅と高さをあたえた上で合
理的な何か.
...
postscript か pdf に渡される他の引数.
method
プロットは postscript 又は pdf を使ってなされるべきか?
taa, gaa
それぞれテキストとグラフィックスに対するアンチエイリアシングの
普通 4 (最良の効果用)か 2. 全てのタイプでサポートされていはいな
い.
Details
dev2bitmap は現在のデバイスを postscript か pdf デバイスにコピーすることで動作し,
そして ghostscript を使って出力ファイルを事後処理する. bitmap は postscript デバ
イスを使って同様に動作し ‘printing’ のように出力を事後処理する.
ghostscript が必要になる:実行ファイルへのフルパスは環境変数 R_GSCMD で設定でき
る.もしこれが未設定なら GhostScript 実行ファイルが自分のパス上で探される: Unix
風システムでは "gs" が使われ,Windows では環境変数 GSC の設定が使われる.さもなけ
れば "gswi64c.exe" そして次に "gswin32c.exe" が試みられる.
利用できるタイプは ghostscript のバージョンに依存するが,以下を含む可能性が高い,
"jpeg", "jpegcmyk", "jpeggray", "tiffcrle", "tiffg3", "tiffg32d", "tiffg4", "tiffgray",
32
dev2bitmap
"tifflzw", "tiffpack", "tiff12nc", "tiff24nc", "tiff32nc" "png16", "png16m", "png256",
"png48", "pngmono", "pnggray", "pngalpha", "bmp16", "bmp16m" "bmp256", "bmp32b", "bmpgray",
"bmpmono".
既定タイプの "png16m" は24ビットカラーとアンチエイリアシングをサポートする.タイ
プ "png256" は256色のパレットを使いよりコンパクトな表現を与えるかもしれない.モ
ノクロのグラフィックスは "pngmono"を使うことが出来,もしアンチエイリアシングが
希望なら "pnggray" を使う.透明な背景と変化する透明度を持つプロットは "pngalpha"
を使うべきである.
色付きの TIFF イメージに対しては恐らく "tiff24nc" を使いたくなるであろう.これは
8ビットチャンネルの RGB (最も普通の TIFF 書式)である.リストされた TIFF タイプの
どれも透明機能をサポートしていない. "tiff32nc" は8ビットチャンネルの CMYK を使
う.これはプリンターが必要とするかもしれない.
単一のイメージを含む書式に対しては, Rplots%03d.png のようなファイル指定を使うこ
とが出来る:これは Ghostscript により解釈される.
dev2bitmap に対してもし width と height の一つが指定されると,他はコピーされるデ
バイスのアスペクト比を保つように選ばれる.既定よりも method = "pdf" を好む主な理
由は半透明色の使用を許すことであろう.
"cra" のようなピクセルを使って作業する必要のあるグラフィックスパラメータに対し
ては,既定の解像度 72dpi が常に使われる.
(Windows 用) 空白を含む file と R_GSCMD に対するパスは shortPathName を用いて短い名
前にマップされる.
Value
無い.
慣例
この節は “R Internals Manual” 中で設定されているグラフィックスデバイス用の慣例の実
装を説明している.これらのデバイスは基礎にあるデバイスに従うので,述べられた
res で眺められた時のものである:
• 既定のデバイスサイズは 7 インチ四方.
• フォントサイズはビッグポイント.
• 既定のフォントファミリは(標準の Ghostscript 設定に対しては) URW Nimbus Sans.
• 線幅は 1/96 インチの倍数で,最少は無い.
• 任意の半径の円が許される.
• 色は眺める/プリントするアプリケーションにより解釈される.
Note
(Windows 用) bitmap の使用は一時ファイルを残す (ファイル名は Rbit で始まる).
type = "pdfwrite" の使用は簡単なプロットに対しては動作するが,勧められない.
PDFを直接作るには pdf,又は postscript の出力に ps2pdf -dAutoRotatePages=/None を
呼び出す:この命令はPDFへの変換に対しこれらの関数が行わない最適化がされてい
る.
devAskNewPage
33
See Also
savePlot,これは windows と X11(type = "cairo") に対して現在のプロットを PNG によ
り記録する簡単な方法を与える.
postscript, pdf, png, jpeg, tiff そして bmp.
データ配列の表示には image を見よ.
devAskNewPage
新しいページの前に確認
Description
この関数は (現在のデバイスに対して)新しい出力ページを開始する前にユーザにプロン
プトで促すかどうかを制御するのに使うことが出来る.
Usage
devAskNewPage(ask = NULL)
Arguments
ask
NULL か論理値.もし TRUE ならば,その後新しい出力ページが開始する
前にプロンプトで促される.
Details
もし現在のデバイスが null デバイスならば,これは新しいグラフィックスデバイスを開
く.
既定の引数は単に現在の設定を返しそれを変更しない.
デバイスが開かれた時の既定値は options("device.ask.default") の設定から取られ
る.
ユーザがいつ新しいページを確認される正確な状況はグラフィックスサブシステムに依
存する.当然これは対話的なセッションを必要とする.加えて‘記録’操作が行われてい
る必要があるので,普通スクリーンデバイス上だけでそうなっているようにディスプレ
イリストが許可になっている時だけ可能になる (dev.control を見よ).
Value
任意の新しい設定の 前に現在のプロンプト設定が適用される.もし ask が論理値なら不
可視.
See Also
plot.new, grid.newpage
34
Devices
Devices
グラフィックスデバイスの一覧
Description
以下のグラフィックスデバイスが現在利用できる:
• windows (Windows 用) Windows に対するグラフィックスデバイス(スクリーン上,プ
リンターへ,そして Windows のメタファイルへ).
• pdf PDF グラフィックス命令をファイルに書き込む.
• postscript PostScript グラフィックス命令をファイルに書き込む.
• xfig XFIG グラフィックスファイル書式.
• bitmap bitmap pseudo-device via Ghostscript (もし利用できれば)を使ったビットマッ
プ.
• pictex TeX/PicTeX グラフィックス命令をファイルに書き込む(歴史的な興味だけ).
以下のデバイスはもし R がそれらを使うようにコンパイルされると機能する (それらは
他のシステムでは存在するが警告と共に復帰する):
•
•
•
•
•
•
•
•
X11 (Unix 用) X11 ウィンドシステムに対するグラフィックスデバイス.
cairo_pdf, カイログラフィックスに基づく cairo_ps PDF と PostScript デバイス.
svg カイログラフィックスに基づく SVG デバイス.
png PNG ビットマップデバイス.
jpeg JPEG ビットマップデバイス.
bmp BMP ビットマップデバイス.
tiff TIFF ビットマップデバイス.
quartz (Unix 用) OS X のネイティブ二次元グラフィックスに対するグラフィックス
デバイス. (これはそれが R.app GUI とコマンドラインから使える OS X 上でだけ機
能する:しかしこれはリモートセッションに対してさえローカルのスクリーンに表
示する.)
Details
もし如何なるデバイスを開かれていなければ,高水準のグラフィックス関数を使うとあ
るデバイスが開かれる.どのデバイスかは options("device") で与えられ,これは最初
各プラットフォームに最も相応しい物に設定される:殆どの対話的な使用にはスクリー
ンデバイスでさもなければ pdf (もしくは R_DEFAULT_DEVICE の設定).例外はUnixで,も
し如何なるスクリーンデバイスも利用できなければ pdf() が使われる.
R パッケージに対してこれ以上のグラフィックスデバイスを提供することが可能で,
CRAN にある幾つかのパッケージはそれをする.これらは SVG と PGF/TiKZ (TeX に基づ
くデバイス,http://pgf.sourceforge.net/ を見よ) に出力する他のデバイスを含む.
See Also
ここで挙げられた各デバイスに関するこれ以上の情報に対するヘルプファイルは次にあ
る; (Wwindows なら) windows.options. (Unix なら) X11.options, quartz.options.デ
バイスをどのようにカスタマイズするかについては ps.options と pdf.options.
dev.interactive, dev.cur, dev.print, graphics.off, image, dev2bitmap. (Uunix なら) X11,
jpeg png, tiff, quartz そして cairo に基づくデバイスが利用可能かは capabilities を見
よ.
embedFonts
35
Examples
## Not run:
## もしこのプラットフォームで如何なるデバイスも開かれていなければ
## 既定のデバイスを開く
if(dev.cur() == 1) dev.new()
## End(Not run)
embedFonts
ポストスクリプトやPDFにフォントを埋め込む
Description
Ghostscript を実行して PDF や PostScript フィルを処理し全てのフォントをファイルに埋
め込む.
Usage
embedFonts(file, format, outfile = file,
fontpaths = character(), options = character())
Arguments
file
オリジナルのファイルの名前を与える文字列.
format
ghostscript の出力デバイスの名前としての (埋め込みフォントの)新しい
ファイルの書式.もし指定されないと file の拡張子から推測される.
outfile
(フォント埋め込みの)新しいファイルの名前.
fontpaths
Ghostscript がフォントを探すディレクトリを与える文字列.
options
Ghostscript への追加オプションを含む文字列.
Details
この関数は PostScript と PDF 出力に対して単に標準の既定のフォントを使うのなら不要
である.
もし特殊なフォントを使うのなら,この関数は PostScript や PDF ドキュメントにそのフ
ォントを埋め込むために役に立つので,特別なフォントをインストールすることなしに
他と共有することが出来る (フォントのライセンスがこれを許す限り).
Ghostscript ように特殊なフォントがインストールされていなければ, Ghostscript にフォ
ントがどこにあるか options="-sFONTPATH=path/to/font" のようにして教える必要があ
る.
ghostscript が必要になる:実行ファイルへのフルパスは環境変数 R_GSCMD で設定でき
る.もしこれが未設定なら, GhostScript の実行ファイルは自分のパス上で名前で探され
る: Unix 風システムでは "gs" が使われ,そして Windows 上では環境変数 GSC の設定
が使われ,さもなければ命令 "gswi64c.exe" そしてそれから "gswin32c.exe" が試みられ
る.
format はオリジナルのファイルが .ps 又は .eps 拡張子を持てば既定では "ps2write" で
あり,オリジナルファイルが拡張子 .pdf の時は "pdfwrite" である. 9.10 以前のバージ
ョンの Ghostscript に対しては, format = "pswrite" 又は format = "epswrite" を使うこ
36
extendrange
とが出来る: 9.14 以降では format = "eps2write" も利用できる.もし不正なデバイス
が与えられると,エラーメッセージは利用可能なデバイスをリストする.
Ghostscript はフォントの差し替えをするかもしれず,埋め込まれたフォントはオリジナ
ルのファイル中で指定されたものとは異なるかもしれないことを注意する.
有用かもしれない他のオプション (Ghostscript のドキュメントを見よ)は ‘-dMaxSubsetPct=100’,
‘-dSubsetFonts=true’ そして ‘-dEmbedAllFonts=true’ である.
Value
Ghostscript を起動したシェル命令が不可視で返される.これは問題を見つけるためシェ
ルで命令を手動で実行出来るためデバッグ用に有用かもしれない.
See Also
postscriptFonts, Devices.
Paul Murrell and Brian Ripley (2006) Non-standard fonts in PostScript and PDF graphics. R News,
6(2):41–47. https://www.r-project.org/doc/Rnews/Rnews_2006-2.pdf.
extendrange
数値範囲を少し拡大する
Description
数値範囲を両端で数パーセント,つまり割合で,拡大する,
Usage
extendrange(x, r = range(x, na.rm = TRUE), f = 0.05)
Arguments
x
r
f
数値ベクトル:もし r が指定されると使われない.
長さ 2 の数値ベクトル;既定では x の range.
範囲をその分拡大する割合を指定する数値.
Value
長さ 2 の数値ベクトル,r + c(-f,f) * diff(r).
See Also
range; extendrange の賢明な拡張と考えられる pretty.
Examples
x <- 1:5
(r <- range(x))
# 1
5
extendrange(x)
# 0.8 5.2
extendrange(x, f= 0.01) # 0.96 5.04
## もし既にあれば 'r' を使う:
stopifnot(identical(extendrange(r = r),
extendrange(x)))
getGraphicsEvent
getGraphicsEvent
37
getGraphicsEvent
Description
この関数はグラフィックスウィンドからのマウス又はキーボードイベントの形での入力
を待つ.
Usage
getGraphicsEvent(prompt = "Waiting for input",
onMouseDown = NULL, onMouseMove = NULL,
onMouseUp = NULL, onKeybd = NULL,
consolePrompt = prompt)
setGraphicsEventHandlers(which = dev.cur(), ...)
getGraphicsEventEnv(which = dev.cur())
setGraphicsEventEnv(which = dev.cur(), env)
Arguments
prompt
グラフィックスウィンド中でユーザに表示されるプロンプト.
onMouseDown
マウスのクリックに対応する関数.
onMouseMove
マウスの動きに対応する関数.
onMouseUp
マウスボタンの解放に対応する関数.
onKeybd
キーの押下に対応する関数.
consolePrompt
コンソール中でユーザに表示されるプロンプト.
which
どのウィンドに呼び出しが適用されるか?
...
イベントの環境中に置かれるハンドラーを含む項目.
env
イベントの環境として使われる環境.
Details
これらの関数はあるグラフィックスデバイスからのユーザの入力を許す (現在基本 R 中
の windows() と X11(type = "Xlib") スクリーンデバイスに見).マウスやキーボードを
含むイベントに対応するイベントハンドラーをインストールすることが出来る.
これらの関数は次のように関係している. getGraphicsEvent への最初の五つの引数の
どれかが与えられると,それはこれらを現在のデバイス中の任意の存在するハンドラ
ーを置き換えるために setGraphicsEventHandlers への呼び出し中で使われる.これは
2.12.0 以前の R との互換性のためである.イベントハンドラーを設定する現在の方法は
それらを一つ又は複数のグラフィックスデバイス上で setGraphicsEventHandlers 又は
setGraphicsEventEnv を使い,それからイベントを回収するため引数無しで getGraphicsEvent()
を使うことである. getGraphicsEventEnv() は後で使うためにイベントの環境を保存す
るために使うことが出来る.
getGraphicsEvent 中の引数の名前は特別である.イベントを処理する際,グラフィック
スシステムはイベントの環境で onMouseDown, onMouseMove, onMouseUp そして onKeybd と
いう名前の関数を探しそれらをイベントハンドラーとして使う.それはグラフィックス
デバイスのラベルとして prompt を使う.他の二つの特別な名前はグラフィックスデバイ
38
getGraphicsEvent
スを特定する which と直近のイベントハンドラーの結果が getGraphicsEvent() で返され
る前に保存される result である.
マウスイベントハンドラーはヘッダー function(buttons, x, y) を持つ関数でなければ
ならない.座標 x と y はデバイス独立な座標 (つまりウィンドの下左隅が (0,0) で上右
が (1,1))中でマウスイベントハンドラーに渡される.buttons 引数はイベント時に押さ
れたボタンをリストするベクトルであり,左は 0,中央は 1 そして右は 2 である.
キーボードイベントハンドラーはヘッダー function(key) を持つ関数でなければならな
い.シフトやその他の修飾キーは処理されているので, shift-a は "A" として渡される.
次の特殊キーもハンドラーに渡されるかもしれない:
• コントロールキー,"Ctrl-A" 等として渡される.
• 方向キー,次の一つとして渡される
"Left", "Up", "Right", "Down", "PgUp", "PgDn", "End", "Home"
• 編集キー,"Ins", "Del" の一つとして渡される.
• 関数キー,"F1", "F2", ... の一つとして渡される.
イベントハンドラーは標準の R 関数であり,イベントの環境から呼び出され実行され
る.
対話的なセッション中ではイベントは以下が起きるまで処理される
• イベントハンドラ―の一つが getGraphicsEvent の値として返される NULL でない値
を返す.
• ユーザがコンソールから関数を中断する.
Value
対話的に実行されている時, getGraphicsEvent はイベントハンドラーのどれかから返さ
れる NULL でない値を返す.対話的でないセッションでは, getGraphicsEvent は即座に
NULL を返す.それは又もしユーザがグラフィックスハンドラーを持つ直近のウィンドを
閉じれば NULL を返す.
getGraphicsEventEnv はグラフィックスデバイスに対する現在のイベント環境を返すか,
又は何も設定されていなければ NULL を返す.
setGraphicsEventEnv そして setGraphicsEventHandlers はグラフィックスデバイスに対
する以前のイベント環境を返す.
Author(s)
Duncan Murdoch
Examples
# これは現在 Windows と
# X11(type = "Xlib") スクリーンデバイスだけで動く...
## Not run:
savepar <- par(ask = FALSE)
dragplot <- function(..., xlim = NULL, ylim = NULL, xaxs = "r", yaxs = "r") {
plot(..., xlim = xlim, ylim = ylim, xaxs = xaxs, yaxs = yaxs)
startx <- NULL
starty <- NULL
prevx <- NULL
prevy <- NULL
usr <- NULL
gray
39
devset <- function()
if (dev.cur() != eventEnv$which) dev.set(eventEnv$which)
dragmousedown <- function(buttons, x, y) {
startx <<- x
starty <<- y
prevx <<- 0
prevy <<- 0
devset()
usr <<- par("usr")
eventEnv$onMouseMove <- dragmousemove
NULL
}
dragmousemove <- function(buttons, x, y) {
devset()
deltax <- diff(grconvertX(c(startx, x), "ndc", "user"))
deltay <- diff(grconvertY(c(starty, y), "ndc", "user"))
if (abs(deltax-prevx) + abs(deltay-prevy) > 0) {
plot(..., xlim = usr[1:2]-deltax, xaxs = "i",
ylim = usr[3:4]-deltay, yaxs = "i")
prevx <<- deltax
prevy <<- deltay
}
NULL
}
mouseup <- function(buttons, x, y) {
eventEnv$onMouseMove <- NULL
}
keydown <- function(key) {
if (key == "q") return(invisible(1))
eventEnv$onMouseMove <- NULL
NULL
}
}
setGraphicsEventHandlers(prompt = "Click and drag, hit q to quit",
onMouseDown = dragmousedown,
onMouseUp = mouseup,
onKeybd = keydown)
eventEnv <- getGraphicsEventEnv()
dragplot(rnorm(1000), rnorm(1000))
getGraphicsEvent()
par(savepar)
## End(Not run)
gray
グレイレベルの指定
40
gray.colors
Description
グレイレベルのベクトルから色のベクトルを作る.
Usage
gray(level, alpha = NULL)
grey(level, alpha = NULL)
Arguments
level
0 と 1 の間の希望するグレイレベルのベクトル;ゼロは "black" で 1 は
"white" を意味する.
alpha
もし指定するならば不透明度.
Details
gray が返す値はグラフィックス関数の col= 指定や par 中で使うことが出来る.
grey は gray の別名である.
Value
level と同じ長さの色のベクトル.
See Also
rainbow, hsv, hcl, rgb.
Examples
gray(0:8 / 8)
gray.colors
グレイの色パレット
Description
n 個のガンマ補正されたグレイ色のベクトルを作る.
Usage
gray.colors(n, start = 0.3, end = 0.9, gamma = 2.2, alpha = NULL)
grey.colors(n, start = 0.3, end = 0.9, gamma = 2.2, alpha = NULL)
Arguments
n
パレット中のグレイ色の数(≥ 1).
start
パレット中のグレイレベルの開始値 (0 と 1 の間になければならず,ゼ
ロは "black" そして 1 は "white" を指示する).
end
パレット中のグレイレベルの終わり値.
gamma
ガンマ補正.
alpha
もし指定するならば不透明度.
grSoftVersion
41
Details
関数 gray.colors は n このガンマ補正された start と end の間のグレイレベルの系列を
選択する: seq(start^gamma, end^gamma, length = n)^(1/gamma).返されるパレット
は対応するグレイ色を含む.このパレットは barplot.default 中で使われる.
grey.colors は gray.colors の別名である.
Value
n 個のグレイ色のベクトル.
See Also
gray, rainbow, palette.
Examples
require(graphics)
pie(rep(1, 12), col = gray.colors(12))
barplot(1:12, col = gray.colors(12))
grSoftVersion
グラフィックスソフトウェアのバージョン
Description
サードパーティー製のグラフィックスソフトウェアのバージョンを報告する.
Usage
grSoftVersion()
Value
少なくとも次の要素を含む名前付き文字列ベクトル
cairo
使用中の cairo グラフィックス,又はもし cairo グラフィックスが利用
できなければ "".
これはまた標準(Windows の場合)や X11 に基づく(Unix の場合) (cairo に基づかない)ビッ
トマップデバイスで使われるサードパーティーソフトウェアのバージョンも含む:
libpng
使用中の libpng のバージョン,又はもし利用できなければ "".
jpeg
コンパイルに使われる JPEG ヘッダー,又は JPEG サポートがコンパイ
ルされていなければ "".
libtiff
使用中の libtiff のバージョン.又はもし利用できなければ "".
特に述べられていなければ報告されるバージョンは実行時に使われる (もしかするとダ
イナミックにリンクされた)ライブラリのそれである.
ある種の Linux ディストリビューションで使われる libjpeg-turbo はそのバージョンを
それがフォークする IJG のバージョンである "6.2" を報告する.
42
hcl
See Also
グラフィックスでないソフトウェアのバージョンに対しては extSoftVersion.
Examples
grSoftVersion()
hcl
色調,彩度,輝度を与えた色ベクトル
Description
色調,彩度そして輝度を与えて色のベクトルを作る.
Usage
hcl(h = 0, c = 35, l = 85, alpha, fixup = TRUE)
Arguments
h
範囲 [0,360] 中の角度として指定された色の色調. 0 は赤,120 は緑,
240 は青等.
c
色の彩度.彩度の上限は hue と輝度に依存する.
l
色の輝度を与える範囲 [0,100] 内の値.与えられた色調と輝度の組み合
わせに対してこの範囲の一部分だけが可能になる.
alpha
アルファ透明度チャンネルに対する範囲 [0,1] 中の値の数値ベクトル
(0 は透明で 1 は不透明を意味する).
fixup
結果の RGB 値は真の色の結果であることを保証する補正を行うべき
かどうかを指示する論理値,もし fixup が FALSE ならば範囲 [0,1] 外の
RGB 成分は NA 値になる.
Details
この関数は CIE-LUV 色空間中の極座標に対応する.この空間中の同じサイズのステップ
は近似的に等しい知覚的な色の変化に対応する.このように,hcl は知覚に基づいた hsv
のバージョンと考えられる.
この関数は当初面積が数値に対応するプロット (円グラフ,棒グラフ,モザイクプロッ
ト,ヒストグラム等) 中の面を埋める色を計算する方法を意図していた.等しい彩度と輝
度を持つ色の選択はさもなければ面積がどれくらい大きいかの誤った印象を生み出す照
射を最小化する方法を与える.
彩度と輝度の既定値は色調の全範囲を生成することが出来,相対的に快適なパステル調
の概観を持つ.
この関数が生み出す RGB 値はほとんどの PC のディスプレイ上で使われる sRGB 色空間
に対応する.より一般的な色空間機能を提供する他のパッケージがある.
半透明色(0 < alpha < 1)はある種のデバイスでだけサポートされる: rgb を見よ.
hcl
43
Value
R のグラフィックス関数で色指定に使える文字列のベクトル.
h, c, l のいずれかの欠損値や無現値は NA になる:そうした値の alpha は 1 (不透明)とさ
れる.
Note
現在の所 R のグラフィックスデバイスが作る色がそれらの sRGB 記述に対応するという
保証はない.将来 sRGB を標準の R 色指定にする計画がある.
Author(s)
Ross Ihaka
References
Ihaka, R. (2003). Colour for Presentation Graphics, Proceedings of the 3rd International Workshop on Distributed Statistical Computing (DSC 2003), March 20-22, 2003, Technische Universität
Wien, Vienna, Austria. http://www.ci.tuwien.ac.at/Conferences/DSC-2003.
See Also
hsv, rgb.
Examples
require(graphics)
# Foley と Van Dam PhD のデータ.
csd <- matrix(c( 4,2,4,6, 4,3,1,4, 4,7,7,1,
0,7,3,2, 4,5,3,2, 5,4,2,2,
3,1,3,0, 4,4,6,7, 1,10,8,7,
1,5,3,2, 1,5,2,1, 4,1,4,3,
0,3,0,6, 2,1,5,5), nrow = 4)
csphd <- function(colors)
barplot(csd, col = colors, ylim = c(0,30),
names = 72:85, xlab = "Year", ylab = "Students",
legend = c("Winter", "Spring", "Summer", "Fall"),
main = "Computer Science PhD Graduates", las = 1)
# オリジナルの(比喩的)色 (ひどい!)
csphd(c("blue", "green", "yellow", "orange"))
# 色四面体(最大色差)
csphd(hcl(h = c(30, 120, 210, 300)))
# 同じだが,より明るく色どりに欠ける
# 真の色を定義したことを確信するため自動的な補正を停止
csphd(hcl(h = c(30, 120, 210, 300),
c = 20, l = 90, fixup = FALSE))
# 類似色
# 赤緑色盲者に良い
csphd(hcl(h = seq(60, 240, by = 60)))
44
Hershey
# 比喩的な色
csphd(hcl(h = seq(210, 60, length = 4)))
# クールな色
csphd(hcl(h = seq(120, 0, length = 4) + 150))
# 暖色
csphd(hcl(h = seq(120, 0, length = 4) - 30))
# 単一の色
hist(stats::rnorm(1000), col = hcl(240))
## hcl() 色空間を探索{R の sRGB 色にマップして}:
demo(hclColors)
Hershey
Hershey ベクトルフォント
Description
もしグラフィカルパラメータ family (par を見よ) が Hershey フォントのどれか一つに設
定されていると(‘詳細’節を見よ) Hershey ベクトルフォントがテキストの表示に用いられ
る.
text と contour 関数を使う時, Hershey フォントは vfont 引数を使って選択でき,これ
は長さ2の文字列ベクトルである (適正な値は‘詳細’節を見よ).これはキリル文字の選択
を許すが,フォントファミリ経由では利用できない.
Usage
Hershey
Details
Hershey フォントは二つの利点を持つ:
1. ベクトルフォントは各文字を店の集まりで表現する; R は文字を点を線で結んで構
成する.この各文字の外形の詳しい知識は R が文字を任意に変形可能であることを
意味し,回転した文字でもベクトルフォントは良い見かけを持つことが出来る.
2. この移植は非アスキー文字と非英語文字をサポートする GNU libplot ライブラリか
ら取られた.これは,例えば,奇妙なシンボルや日本語文字のプロットを可能にす
る.
欠陥:
数学表現(plotmath)を Hershey フォントと一緒に使えない.
Hershey 文字はフォントのセットで構成されている.特定のフォントは次のフォントファ
ミリの一つを指定し,希望のフォントフェイス (プレーン,ボールド,イタリック,ボー
ルドイタリック)を par(font) を使って指定することで選択できる.
ファミリ
利用可能フェイス
Hershey
"HersheySerif"
"HersheySans"
"HersheyScript"
"HersheyGothicEnglish"
"HersheyGothicGerman"
"HersheyGothicItalian"
"HersheySymbol"
"HersheySansSymbol"
45
プレーン,ボールド,イタリック,ボールドイタリック
プレーン,ボールド,イタリック,ボールドイタリック
プレーン,ボールド
プレーン
プレーン
プレーン
プレーン,ボールド,イタリック,ボールドイタリック
プレーン,イタリック
text に対する vfont と contour 関数の指定中で, Hershey フォントはタイプフェイス
(例えば serif か sans serif) とフォントインデックス又は‘スタイル’ (例えば plain か
italic) で指定される. vfont の最初の要素はタイプフェイスを二番目の要素はフォント
インデックスを指定する. demo(Hershey) が作る最初の表は文字 a が異なったフォント
の各々から作られることを示している.
利用可能な typeface と fontindex 値は変数 Hershey のりスト成分として得られる.
(typeface, fontindex) に対する許される対は:
serif
serif
serif
serif
serif
serif
serif
sans serif
sans serif
sans serif
sans serif
script
script
script
gothic english
gothic german
gothic italian
serif symbol
serif symbol
serif symbol
serif symbol
sans serif symbol
sans serif symbol
plain
italic
bold
bold italic
cyrillic
oblique cyrillic
EUC
plain
italic
bold
bold italic
plain
italic
bold
plain
plain
plain
plain
italic
bold
bold italic
plain
italic
そしてこれらの添字は Hershey$allowed で得られる.
エスケープ列: 描かれる文字列はエスケープ列を含んでも良い,これらは全て ‘\’ で始
まる.R が ‘\’ に出会うと ‘\’ を描く代わりに,それを引き続く文字を描かれるべき
もののコード記述と見做す.
一つの有用なエスケープ列(現在の文脈で)は次の型式を持つ:‘\123’. ‘\’ に続く三
つの数字は文字の8進法コードを指定する.例えば p に対する8進法コードは 160 で
あり,従って文字 "p" と "\160" は同値になる.これはキーボードに適当なキーが
無い時に文字を作るのに有用である.
46
Hershey
他の有用なエスケープ列はすべて ‘\\’ で始まる.これらは下で説明される. R の文
字列ではバックスラッシュは二重化される必要があり,従ってそれらは4つで入力
される必要があることを注意する.
シンボル: 全てのギリシャ文字シンボルは HersheySymbol 又は HersheySansSymbol fファ
ミリ,又はセリフシンボルまたはサンセリフシンボルのタイプフェイスを指定する
ことで作ることが出来る.ギリシャ文字シンボルを非シンボルタイプフェイスを使
う文字列に埋め込むことを許すために,型式 ‘\\ab’ のシンボルエスケープ列のセ
ットがある. 例えば,エスケープ列 ‘\\*a’ はギリシャ文字のアルファを生み出す.
demo(Hershey) の二番目の表は全てのシンボルエスケープ列はとそれらが生み出す
シンボルを示す.
ISO Latin-1: 型式 ‘\\ab’ のエスケープ列が更に ISO Latin-1 文字を作るために用意されて
いる.網に凸のオプションは適当な8進法コードを使うことである. (非アスキー)
ISO Latin-1 文字はハンチ 241. . . 377 にある.例えば,‘\366’ はウムラウト付きの o
を作る. demo(Hershey) の三番目の表は全ての ISO Latin-1 エスケープ列を示す.
これらの文字は直接使うことが出来る. (Latin-1 に無い文字はドットで置き換えら
れる.)
幾 つ か の 文 字 は 欠 け て お り, c-cedilla は セ デ ィ ー ユ を 持 た ず, そ し て ‘sharp s’
(‘U+00DF’, ‘esszett’ として知られている) は ss と表示される.
特殊文字: どの標準的フォントにも入らない文字のセットが提供されている.これらは
エスケープ列としてだけアクセスできる.例えば ‘\\LI’ は天秤座に対する占星術文
字で,そして ‘\\JU’ は木星に対する天文学記号である. demo(Hershey) の4番目の
表は全ての特殊文字のエスケープ列を示す.
キリル文字: キリル文字は K018-R エンコーディングに従って移植されており,そうし
たロケールではセリフのタイプフェイスとキリル(又は斜体キリル)フォントインデ
クスで直接に使うことが出来る.別法としてそれらは小文字は範囲 300 から 337 ,
又は大文字は範囲 340 から 377 の8進法コードとして指定できる. demo(Hershey)
の5番目の表は利用可能なキリル文字に対する 8進法コードを示す.
キリル文字はフォントファミリではなく,対 ("serif", fontindex) で指定されな
ければならない.
日本語文字: 83個の平仮名, 86個の片仮名, そして603個の漢字文字が EUC-JP (Extended Unix Code) エンコーディングに従って移植されている.各文字は16進コード
でユニークに特定できる.平仮名文字は範囲 0x2421 から 0x2473 に,片仮名は範囲
0x2521 から 0x2576 に,そして漢字は範囲 0x3021 から 0x6d55 に(散らばって)ある.
セリフタイプフェイスと EUC フォントインデックスを使うときは,これらの文字
は8進コードの 対で作ることが出来る. 16進コード(例えば 0x2421)をあたえた時,
最初の二つの数字を取り, 0x80 を加え,二番目の二つの数字にも同じことを行う
(例えば,0x21 と 0x24 は 0xa4 と 0xa1 になる),それから両者を 8進法に変換する(例
えば, 0xa4 と 0xa1 は 244 と 241 になる).例えば最初の平仮名は ‘\244\241’ で作ら
れる.
16進コードを直接使うこともまた可能である.これは ‘\#J1234’ の形式のエスケー
プ列を指定することで全ての非EUCフォントに対して動作する.例えば最初の平仮
名文字は ‘\#J2421’ で作られる.
漢字文字は三つ目の方法, ‘\#N1234’ の形式のエスケープ列を指定するいわゆ
る "Nelson インデックス" ででも指定できる.例えば,‘1’に対する(旧式の)漢字は
‘\#N0001’ で作られる.
demo(Japanese) は利用可能な日本語文字を示す.
生の Hershey 絵文字: Hershey フォント中の全ての文字は大きな配列中に保管されて
いる. Hershey フォントのどれからもアクセスできないものもある.これらの文
字は ‘\#H1234’ 形式のエスケープ列によってだけアクセスできる. 例えば百合紋
章(fleur-de-lys)は ‘\#H0746’ でアクセスできる. demo(Hershey) の6番目と7番目の表
は利用可能な生の絵文字を示す.
hsv
47
References
https://www.gnu.org/software/plotutils/plotutils.html.
See Also
demo(Hershey), par, text, contour.
Hershey フォント中の日本語フォントに対しては Japanese.
Examples
Hershey
## 例の表については demo(Hershey) を見よ.
hsv
色調,彩度,値(HSV)による色指定
Description
色調,彩度,そして値を指定するベクトルから色のベクトルを作る.
Usage
hsv(h = 1, s = 1, v = 1, alpha)
Arguments
h,s,v
‘色調’に対しては範囲 [0, 1], ‘彩度’ そして色ベクトルを作るために
結合される‘値’の数値ベクトル.短い引数中の値はリサイクルされる.
alpha
アルファ透明度チャンネルに対する範囲 [0, 1] 中の値のベクトル(0 は
透明で 1 は不透明を表す).
Details
半透明色(0 < alpha < 1) はある種のデバイスだけでサポートされる: rgb を見よ.
Value
この関数は HSV 空間中で与えられた値に体操する色のベクトルを作る. hsv が返す値は
グラフィックス関数中の col= 指定や par 中で使うことが出来る.
See Also
知覚に基づく hsv() のバージョンに対しては hcl. RGB から HSV への変換は rgb と
rgb2hsv, rainbow, gray.
48
Japanese
Examples
require(graphics)
hsv(.5,.5,.5)
## 赤い色調:
n <- 20; y <- -sin(3*pi*((1:n)-1/2)/n)
op <- par(mar = rep(1.5, 4))
plot(y, axes = FALSE, frame.plot = TRUE,
xlab = "", ylab = "", pch = 21, cex = 30,
bg = rainbow(n, start = .85, end = .1),
main = "Red tones")
par(op)
Japanese
日本語文字
Description
Hershey ベクトルフォントの移植は大量の日本語文字 (平仮名,片仮名,そして漢字)を提
供する.
Details
日本語文字をタイプするキーボードのサポート無しなら,これらの文字を作り出す唯一
の方法は特殊なエスケープ列を使うことである: Hershey を見よ.
例えば,"ka" という発音の平仮名文字は ‘\#J242b’ で作られ,この音の片仮名文字は
‘\#J252b’ で作られる. "一" に対する漢字表意文字は ‘\#J306c’ か ‘\#N0001’ で作ること
ができる.
The output from demo(Japanese) の出力は利用可能な日本語文字に対するエスケープ列の
表を示す.
References
https://www.gnu.org/software/plotutils/plotutils.html
See Also
demo(Japanese), Hershey, text
Examples
require(graphics)
plot(1:9, type = "n", axes = FALSE, frame = TRUE, ylab = "",
main = "example(Japanese)", xlab = "using Hershey fonts")
par(cex = 3)
Vf <- c("serif", "plain")
text(4, 2, "\#J244b\#J245b\#J2473", vfont = Vf)
text(4, 4, "\#J2538\#J2563\#J2551\#J2573", vfont = Vf)
text(4, 6, "\#J467c\#J4b5c", vfont = Vf)
make.rgb
text(4,
par(cex
text(8,
text(8,
text(8,
text(8,
make.rgb
49
8, "Japan", vfont = Vf)
= 1)
2, "Hiragana")
4, "Katakana")
6, "Kanji")
8, "English")
色空間を作る
Description
この関数は convertColor 中で使うための色空間を指定する.
Usage
make.rgb(red, green, blue, name = NULL, white = "D65",
gamma = 2.2)
colorConverter(toXYZ, fromXYZ, name, white = NULL)
Arguments
red,green,blue RGB 原色の色度 (xy 又は xyY).
name
色空間の名前.
white
参照白を指定する文字列 (‘詳細’節を見よ).
gamma
表示ガンマ(非線形性).正数または文字列 "sRGB".
fromXYZ
XYZ 三原色座標からこの空間へ変換する関数.
toXYZ
この空間から XYZ 三原色座標へ変換する関数.
Details
RGB 色空間は赤,緑,そして青の色度で定義される.これらは xyZ 座標中の長さ 2 又は
3 のベクトルとして与えられる (Y 成分は使われず省略できる).色度は参照白に関して
定義され,これは CIE 標準発光色: "A", "B", "C", "D50", "D55", "D60", "E" (普通 "D65")の
一つでなければならない.
表示ガンマは最も普通に 2.2 であるが,Apple RGB では 1.8 が使われる. sRGB 標準はガ
ンマ 2.2 に近いもっと複雑な関数を指定する; gamma = "sRGB" はこの関数を使う.
RGB 以外の色空間は直接 XYZ 三原色座標への/からの変換を与えることで指定できる.
関数は二つの引数を取るべきである.挿し穂は一つの色に対する座標を与えるエクトル
である.二番目の引数は参照白である.もし特定の参照白が色空間の定義に含められる
と (RGB 空間に対するように)この二番目の引数は無視されるべきで ... で良い.
Value
クラス colorConverter のオブジェクト.
References
変換アルゴリズムは http://www.brucelindbloom.com から.
50
n2mfrow
See Also
convertColor
Examples
(pal <- make.rgb(red =
c(0.6400,
green = c(0.2900,
blue = c(0.1500,
name = "PAL/SECAM
0.3300),
0.6000),
0.0600),
RGB"))
## #rrggbb 書式での sRGB に対する書式変換
hexcolor <- colorConverter(toXYZ = function(hex, ...) {
rgb <- t(col2rgb(hex))/255
colorspaces$sRGB$toXYZ(rgb, ...) },
fromXYZ = function(xyz, ...) {
rgb <- colorspaces$sRGB$fromXYZ(xyz, ..)
rgb <- round(rgb, 5)
if (min(rgb) < 0 || max(rgb) > 1)
as.character(NA)
else rgb(rgb[1], rgb[2], rgb[3])},
white = "D65", name = "#rrggbb")
(cols <- t(col2rgb(palette())))
zapsmall(luv <- convertColor(cols, from = "sRGB", to = "Luv", scale.in = 255))
(hex <- convertColor(luv, from = "Luv", to = hexcolor, scale.out = NULL))
##それを使う前に16進数を行列にしなければならない
(cc <- round(convertColor(as.matrix(hex), from = hexcolor, to = "sRGB",
scale.in = NULL, scale.out = 255)))
stopifnot(cc == cols)
n2mfrow
プロット数から mfrow を計算
Description
一頁に複数の図(矩形のレイアウト)を簡単にセットアップする.これは par(mfrow) に対
する賢明な既定値を計算する.
Usage
n2mfrow(nr.plots)
Arguments
nr.plots
整数;描きたいプロット図の数.
Value
長さが 2 の整数ベクトル nr, nc で, nr >= nc >= 1 と nr * nc >= nr.plots を満たす行
数と列数を与える.
nclass
51
Author(s)
Martin Maechler
See Also
par, layout.
Examples
require(graphics)
n2mfrow(8) # 3 x 3
n <- 5 ; x <- seq(-2, 2, len = 51)
## ここで 'n' が未知とする{関数内部で}
op <- par(mfrow = n2mfrow(n))
for (j in 1:n)
plot(x, x^j, main = substitute(x^ exp, list(exp = j)), type = "l",
col = "blue")
sapply(1:10, n2mfrow)
nclass
ヒストグラムのクラス数の計算
Description
ヒストグラムのクラス数を計算する.
Usage
nclass.Sturges(x)
nclass.scott(x)
nclass.FD(x)
Arguments
x
データベクトル.
Details
nclass.Sturges は Sturges の公式を使い,データの範囲に関するビンのサイズに暗黙の
うちに基づく.
nclass.scott は標準エラーの推定量に基づく正規分布に対する Scott の選択である.標
準エラーがゼロならば 1 を返す.
nclass.FD は四分差範囲 (IQR)に基づく Freedman-Diaconis の選択である.四分差範囲がゼ
ロならば mad(x, constant = 2) に戻り,これも 0 ならば 1 を返す.
Value
提案されるクラス数.
52
palette
References
Venables, W. N. and Ripley, B. D. (2002) Modern Applied Statistics with S-PLUS. Springer, page
112.
Freedman, D. and Diaconis, P. (1981) On the histogram as a density estimator: L2 theory. Zeitschrift
für Wahrscheinlichkeitstheorie und verwandte Gebiete 57, 453–476.
Scott, D. W. (1979) On optimal and data-based histograms. Biometrika 66, 605–610.
Scott, D. W. (1992) Multivariate Density Estimation. Theory, Practice, and Visualization. Wiley.
Sturges, H. A. (1926) The choice of a class interval. Journal of the American Statistical Association
21, 65–66.
See Also
hist と truehist (パッケージ MASS); Wand(1995) が提案したプラグインバンド幅に対
しては dpih (パッケージ KernSmooth).
Examples
set.seed(1)
x <- stats::rnorm(1111)
nclass.Sturges(x)
## これらを比較せよ:
NC <- function(x) c(Sturges = nclass.Sturges(x),
Scott = nclass.scott(x), FD = nclass.FD(x))
NC(x)
onePt <- rep(1, 11)
NC(onePt) # 最早 NaN を与えない
palette
グラフィックスの色パレット
Description
col= が数値添字を持つ時に使われる色パレットを眺めたり操作したりする.
Usage
palette(value)
Arguments
value
オプションの文字列ベクトル.
Details
色パレットと数による色の参照 (例えば par)は S との互換性のために提供される:R で
はほとんど常に色を名前で指定するほうが良い.
もし value が長さ1を持てば,それは組み込み色パレット ("default" だけが現在組み込
まれている)の名前とされる.もし value の長さが1より大きければ,それは新しいパレ
Palettes
53
ットを作り上げる色の記述を含む (名前か RGB レベルを用い)と仮定される.パレットの
最大サイズは 1024 である.
もし value が省略されると,現在のパレットには何も変更が加えられない.
一つの R セッション中の全てのデバイスに対しては唯一つのパレットの設定がある.も
しパレットが変更されると,新しいパレットはそれ以降の全てのプロットに適用され
る.
現在のパレットはまた再プロット (例えばオンスクリーンデバイスのサイズ変更や
dev.copy や replayPlot が使われる時)にも適用される.パレットは各ページの開始時と
それが変更された時のディスプレイリスト上に記録される.
Value
直近の有効なパレットを与える文字列.引数が省略されない限りこれは不可視である.
See Also
組み込みの名前付き色のベクトルは colors;色を構成するには hsv, gray, rainbow,
terrain.colors, 等.
既存のパレットを弄るには例えば adjustcolor;色を補間しカスタムパレットを作るに
は colorRamp;色を RGB の長さ3のベクトルに翻訳するには col2rgb.
Examples
require(graphics)
palette()
palette(rainbow(6))
# 現在のパレットを得る
# 6色の虹色
(palette(gray(seq(0,.9,len = 25)))) # グレイスケール;古いパレットをプリント
matplot(outer(1:100, 1:30), type = "l", lty = 1,lwd = 2, col = 1:30,
main = "Gray Scales Palette",
sub = "palette(gray(seq(0, .9, len=25)))")
palette("default")
# 既定にリセット
## アルファ透明度がサポートされているデバイス上で
## 既定のパレットに 'alpha = 0.3' 透明度を用いる:
mycols <- adjustcolor(palette(), alpha.f = 0.3)
opal <- palette(mycols)
x <- rnorm(1000); xy <- cbind(x, 3*x + rnorm(1000))
plot (xy, lwd = 2,
main = "Alpha-Transparency Palette\n alpha = 0.3")
xy[,1] <- -xy[,1]
points(xy, col = 8, pch = 16, cex = 1.5)
palette("default")
Palettes
色パレットを作る
Description
n 個の連続した色のベクトルを作る.
54
Palettes
Usage
rainbow(n, s = 1, v = 1, start = 0, end = max(1, n - 1)/n, alpha = 1)
heat.colors(n, alpha = 1)
terrain.colors(n, alpha = 1)
topo.colors(n, alpha = 1)
cm.colors(n, alpha = 1)
Arguments
n
パレット中の色の数(≥ 1).
s, v
HSV 色指定を完全にするために使われる ‘彩度’と‘値’.
start
そこから虹が始まる(修正された) [0,1] 中の色調.
end
そこで虹が終わる(修正された) [0,1] 中の色調.
alpha
アルファ透明度,[0,1] 中の値, hsv 中の引数 alpha を見よ.
Details
概念的には,これらの関数全ては実際は hsv(h, s, v) でパラメータ化された 3次元の色
空間から切り取られた直線(の一部)を使うので, RGB 空間中の等間隔の色調は赤,緑,
青の原色付近に固まりやすい.
等高線のような応用は最後の色が最初の色に近くならないような色のパレットを必要と
する.
rainbow では,パラメータ start と end は特定の色調の部分範囲を指定することに使うこ
とが出来る.以下の値がそうした部分範囲を作るのに使うことが出来る: red = 0, yellow
= 61 , green = 26 , cyan = 36 , blue = 46 そして magenta = 56 .
Value
色名の文字列ベクトル cv.これはそれ以降の palette(cv) によるグラフィックス,col =
指定,又は par で使うことが出来るユーザ定義の色パレットを作るために使うことが出
来る.
See Also
colors, palette, hsv, hcl, rgb, gray そして RGB 数への翻訳は col2rgb.
Examples
require(graphics)
# 色の輪
pie(rep(1, 12), col = rainbow(12))
##------ 幾つかのパレット -----------demo.pal <function(n, border = if (n < 32) "light gray" else NA,
main = paste("color palettes; n=", n),
ch.col = c("rainbow(n, start=.7, end=.1)", "heat.colors(n)",
"terrain.colors(n)", "topo.colors(n)",
"cm.colors(n)"))
{
nt <- length(ch.col)
i <- 1:n; j <- n / nt; d <- j/6; dy <- 2*d
pdf
55
plot(i, i+d, type = "n", yaxt = "n", ylab = "", main = main)
for (k in 1:nt) {
rect(i-.5, (k-1)*j+ dy, i+.4, k*j,
col = eval(parse(text = ch.col[k])), border = border)
text(2*j, k * j + dy/4, ch.col[k])
}
}
n <- if(.Device == "postscript") 64 else 16
# スクリーン向けなので,大きな n は色の割当問題を起こすかもしれない
demo.pal(n)
pdf
PDF グラフィックスデバイス
Description
pdf は PDF グラフィックスを生成するためのグラフィックスドライバを開始する.
Usage
pdf(file = if(onefile) "Rplots.pdf" else "Rplot%03d.pdf",
width, height, onefile, family, title, fonts, version,
paper, encoding, bg, fg, pointsize, pagecentre, colormodel,
useDingbats, useKerning, fillOddEven, compress)
Arguments
file
ファイルの名前を与える文字列.もしこれが形式 "|cmd" ならば出力は
cmd で与えられる命令にパイプされる.もしこれが NULL なら外部ファ
イルは作られない (実効的には如何なる描画も行われない)が,デバイ
スは依然問い合わせされるかもしれ無い(例えば,テキストのサイズ).
onefile = FALSE と共に使うためには "Rplot%03d.pdf" (その場合の既
定)のような C の整数書式を与える(より詳細は postscript を見よ.)
チルド展開(path.expand を見よ)がなされる.
width, height
インチ単位のグラフィックス領域の幅と高さ.既定値は 7.
onefile
論理値:もし真(既定値)なら一つのファイルに複数の図を許す.もし偽
なら,各頁に対してページ番号を含む名前のファイルを一つ作る.既
定は TRUE で,もし file がパイプなら真に強制される.
family
使用されるフォントファミリ, postscript を見よ.既定は "Helvetica".
title
ファイルの ‘/Title’ 欄として埋め込まれるタイトル文字列.既定は
"R Graphics Output".
fonts
PDF ファイル中に含められる追加フォントに対する R グラフィクスの
フォントファミリを指定される文字列.既定では NULL.
version
出力を眺めるために必要とされる PDF バージョンを記述する文字れる.
これは最小限で必要なら増加できる(警告と共に).既定は "1.4" である
が,‘詳細’節を見よ.
56
pdf
paper
目標の用紙サイズ.選択は "a4", "letter", "legal" (又は "us") そして
"executive" (そしてこれらは大文字化出来る),又は回転(‘ランドスケ
ープ’)に対しては "a4r" と "USr".既定値は "special" であり,これは
width と height が用紙サイズを指定する. "default" も選択できる:
もしこれが選択されると,用紙サイズはオプションもしこれが設定さ
れていれば "papersize" で,もしこれが未設定か空ならば "a4" とされ
る.既定は "special".
encoding
エンコード用のファイルの名前. 詳細は postscript を見よ. 既定は
"default".
bg
使用される初期背景色.既定は "transparent".
fg
使用される初期前景色.既定は "black".
pointsize
使用される既定のポイントサイズ. 厳密に言えばこれは 1 インチの
1/72 であるが,近似的なポイントである.既定は 12.
pagecentre
論理値:デバイス領域は頁の中心に置くか? – paper != "special" に対
してだけ関係する.既定は TRUE.
colormodel
色モデルを記述する文字列文字列:現在許される値は "srgb", "gray"
(又は "grey") そして "cmyk".既定は "srgb".‘色モデル’節を見よ.
useDingbats
論理値.小さな円は Dingbats フォントを使い描くべきか? 既定は TRUE
でより小さくて見栄えの良い出力を作る. これを FALSE に設定する
ことは壊れた PDF ビューアーによるフォント表示を応急処置できる:
このフォントは全ての PDF ビューアーで使えることが保証されてい
る14のうちの一つであるが,この保証は常に尊重されるわけではな
い.
(Unix の場合) 幾つかのビューアーに対する可能な処置については‘注意’
節を見よ.
useKerning
論理値.テキストの設定と文字列幅の計算中にカーニング補正を含め
るべきか? 既定は TRUE.
fillOddEven
多角形の塗りつぶしモードを制御する論理値:詳細は polygon を見よ.
既定値は FALSE.
compress
論理値. PDF ストリームは Flate 圧縮で生成されるべきか? 既定は
TRUE.
Details
file を除く全ての引数は pdf.options() で与えられる既定値を持つ.究極の既定値は引
数節で引用されている.
pdf() はファイル file を開き,任意の要求されるグラフィクスのプロットに必要な PDF
命令はそのファイルに送られる.
file 引数は sprintf が使うような C 整数書式として解釈され,ページ番号が整数引数に
なる.既定値はファイル ‘Rplot001.pdf’, . . . , ‘Rplot999.pdf’, ‘Rplot1000.pdf’, . . . を与え
る.
family 引数はデバイスに対する初期/既定フォントとしての PDF 個通のフォントファミ
リを指定するのに使える.もし追加のフォントファミリが使われるのなら,それらは
fonts 引数に含められるべきである.
もしデバイス独立な R グラフィクスのフォントファミリが指定されると (例えば graphics
パッケージ中の par(family = )), PDF デバイスは R グラフィクスフォントファミリを
PDF 固有のフォントファミリ記述に変換するのに PostScript のフォントマッピングを利
用する. (pdfFonts に対するドキュメントを見よ.)
pdf
57
このデバイスは PDF ファイル中にフォントを埋め込まないので,任意の PDF ビュー
ア中で利用できると仮定出来るフォントファミリにマッピングするのが簡単である:
"Times"("serif" と同値), "Helvetica" ("sans" と同値) そして "Courier" ("mono" と同
値).他のフォントも指定できるかもしれないが,これらのフォントがシステムで利用で
きることを保証するのはユーザの責任であり,サードパーティーのソフトウェア (例え
ば Ghostscript) は PDF が他のドキュメント(例えば LaTeX)ni 含められることが出来るよ
うにフォントの埋め込みを要求するかもしれない: embedFonts を見よ. postscript に
対して説明された URW に基づくファミリは (Unix では) URW フォントを使う設定のビ
ューアーで使うことが出来る,これは xpdf や Ghostscript では普通である. (Windows で
は) URW フォントを使う GSView のようなビューアで使うことが出来る. embedFonts は
Ghostscript を利用するので,それは他のビューアで使うために URW ベースのファミリ
を埋め込むことが出来なければならない.
内 部 コ ー ド は ド ラ イ バ ー 間 で 共 有 さ れ る た め, エ ン コ ー デ ィ ン グ に 関 す る 詳 細 は
postscript を見よ. ネイティブの PDF エンコーディングはファイル ‘PDFDoc.enc’ 中
に与えられている.
作られた PDF はかなり単純であり,各ページは単一のストリーム (既定では圧縮されも
しかするとラスタ―イメージへの参照を持つ). R のグラフィクスモデルはドライバのイ
ンタフェイスのレベルではグラフィクスオブジェクトを区別しない.
version 引数は作成された PDF のバージョンを宣言する.バージョンは圧縮が使われて
いるときは少なくとも 1.2,半透明な出力が使われるならば 1.4,そして CID フォントを
使うならば 1.3 でなければならない:もしこれらの特徴のどれかが使われるならばバー
ジョン番号は増やされる(警告と共に).(PDF 1.4 は最初 2001年に Acrobat 5 でサポートさ
れた;これが現在のビューアーでサポートされていないことは非常にありそうもない.)
par(lwd = ) で制御される線幅は 1/96 インチの倍数である. inch. 1 未満の倍数は許され
ない. cex = 1 と共に使われる pch = "." は側面が 1/72 インチの正方形に対応し,また
"cra" のようなグラフィクスパラメータに対する ‘ピクセル’サイズである.
paper 引数はファイル中の ‘/MediaBox’ 項目を設定し,既定値は width 対 height である.
もしこれが "special" 以外の何かに設定されると,指定されたサイズのデバイス領域は
(既定で)用紙サイズで与えられる矩形の中心に置かれる:もし width か height が 0.1 未
満か合計で 0.5 インチのマージンを与えるには大き過ぎる時は,これは対応する用紙の
次元から 0.5 を引いたものにリセットされる.従ってもし既定の postscript の挙動が欲
しければ,デバイス領域を 0.25 インチの余白を持つランドスケープの A4 上にデバイス
領域をセンタリングするには pdf(paper = "a4r", width = 0, height = 0) を使う.
背景色が完全に透明 (初期既定値がそうであるように)ならば,作られた PDF は背景を塗
らない.殆どの PDF ビューアーは白いキャンバスを使うので目に見える効果は背景があ
たかも白いようになることである.しかしながら,これは色付きの紙へのプリントでは
そうではない.
色モデル
既定の色モデル("srgb")は sRGB である. モデル "gray" (又は "grey") は sRGB 色を
知覚される光度 (緑側にかたよる)を利用してグレイスケールに変換する. "cmyk" は
CMYK 色空間に出力する. sRGB から CMYK への最も簡単な変換が使われ (https:
//en.wikipedia.org/wiki/CMYK_color_model#Mapping_RGB_to_CMYK),そしてラスタ―イ
メージは RGB で出力される.
後方互換性から利用可能なモデルは "rgb" で,未調整の RGB を使い 2.13.0 以前の R の
同名のモデルに対応する.ある種のビューアーはこの色空間で sRGB よりもある種のプ
ロットを速く作成し,プロットファイルはより小さくなる.
58
pdf
慣例
この節は “R Internals Manual” 中で設定されているグラフィックスデバイスに対する.慣例
の実装を説明する
• 既定のデバイスは 7 インチ四方.
• フォントのサイズはビッグポイント.
• 既定のフォントは Helvetica.
• 線幅は 1/96 インチの倍数で,最小値 0.01 が強制される.
• 任意の半径の円が許される. useDingbats = FALSE で無い限り,10 ビッグポイント
未満の不透明の円は Dingbats フォントの文字 108 を用いて描画される:全ての半透
明とより大きな円は各象限で Bézier 曲線を用いる.
• 色は既定で sRGB として指定される.
非常に小さな線幅に対しては,線種は実線に強制されるかもしれない.
プリント
Windows を除いては pdf から直接に次のようにしてプリントすることが可能である (こ
れは CUPS プリントシステムに対して適当である):
pdf("|lp -o landscape", paper = "a4r")
これは onefile = TRUE を強制する.
Note
PDF の出力関して問題が見られれば,問題は R よりもビューアーに問題がある可能性が
高いことを忘れない欲しい.もし可能ならば別のビューアーを試みよう.ビューアーが
欠陥をもつ症状はイメージのプロット上の見かけ上のグリッド (もし可能ならグラフィ
クスのアンチエイリアシングをオフにしておく) とテキスト中の欠損又は不正確なグリ
フである (ビューアは黙ってフォントの置き換えを行う).
不幸なことに殆どの Linux と OS X システムの既定ビューアーはこれらの問題を持ち,グ
ラフィクスのアンチエイリアシングをオフにする明白な方法はない.
Acrobat Reader はフォントの置換えを行わずむしろそれらを multiple-master フォントから
模倣する.これは文字の不正確なセンタリングで見ることが出来る,例えば Helvetica の
掛算よ除算記号.これは可能ならば埋め込みにより克服できる.殆どの他のビューアー
はフォントを置き換える,例えば標準の Helvetica と Times フォントに対して URW フォ
ントを使い,これらもしばしば真のフォントとは異なるフォントメトリックを持つ.
Acrobat Reader は ‘フォントパック’で拡張することが出来,これらは Latin-1 以外のエン
コーディングをフルに使うために必要である (必要に応じてダウンロード出来るように
提供されているが).
ある種の Unix システムでは既定のプロット文字 pch = 1 はある PDF ビューアーでは
不正確に文字 "q" として表示された. (これらは ‘poppler’ の PDF レンダリングライブ
ラリに基づくビューアーのように見える.これはフォント名のシステムで使うそれらへ
の不正確か不完全なマッピングに基づくかもしれない.次の行を ‘~/.fonts.conf’ 又は
‘/etc/fonts/local.conf’ に加えることでこの問題を克服できるかもしれない,これは影
響を受けるシステムで概ね訂正されているが.
pdf
59
<fontconfig>
<alias binding="same">
<family>ZapfDingbats</family>
<accept><family>Dingbats</family></accept>
</alias>
</fontconfig>
‘fontconfig’ を使ったビューアーのシンボルフォントに関する問題の応急措置は X11 に対
するヘルプの‘Cairo フォント’の節に与えられている.
Windows では TeXworks PDF ビューアーが Dingbats (例えば pch = 1 で使われる)を正確に
表示するのに失敗するものの一つである.他のプラットフォームでは問題は不正確な出
力である一方, Windows ではポイントは黙って省略される:しかしながら最近のバージ
ョンは Dingbats を表示できるようである.
Firefox 19 とそれ以降に含まれる pdf.js ビューアー中には異なったフォントのバグがあ
る:これは Dingbats をシンボルフォントにマップし,従って pch = 1 のようなシンボル
をラムダとして表示する.
See Also
pdfFonts, pdf.options, embedFonts, Devices, postscript.
(Unix 用) PDF を生成できる他のデバイスに対しては cairo_pdf と (OS X のみ) quartz.
(Windows 用) PDF を 生 成 で き る 他 の デ バ イ ス に 対 し て は cairo_pdf と (OS X の み)
quartz.
フォントファミリとエンコーディング,そして特に非 Latin-1 エンコーディングでのテキ
ストとフォントの埋め込みについては以下により詳細がある
Paul Murrell and Brian Ripley (2006) Non-standard fonts in PostScript and PDF graphics. R News,
6(2):41–47. https://www.r-project.org/doc/Rnews/Rnews_2006-2.pdf.
Examples
## エンコーディングのためのテスト関数
TestChars <- function(encoding = "ISOLatin1", ...)
{
pdf(encoding = encoding, ...)
par(pty = "s")
plot(c(-1,16), c(-1,16), type = "n", xlab = "", ylab = "",
xaxs = "i", yaxs = "i")
title(paste("Centred chars in encoding", encoding))
grid(17, 17, lty = 1)
for(i in c(32:255)) {
x <- i %% 16
y <- i %/% 16
points(x, y, pch = i)
}
dev.off()
}
## 多くの警告が出る.
TestChars("ISOLatin2")
## これは古いビューアーでは正しく読めない.
TestChars("ISOLatin2", family = "URWHelvetica")
## gs に基づくビューアー,そしてしばしば xpdf では正しく動作する.
60
pdf.options
pdf.options
pdf のオプション設定
Description
補助関数 pdf.options は pdf への引数の幾つかに対する既定値を設定したり眺めたり(引
数無しで呼ばれた時)するのに使える.
pdf.options は pdf を呼び出す前に呼ばれる必要があり,それが設定する既定値は pdf
に引数を与えることで上書きされる.
Usage
pdf.options(..., reset = FALSE)
Arguments
...
引数 width, height, onefile, family, title, fonts, paper, encoding, pointsize,
bg, fg, pagecentre, useDingbats, colormodel, fillOddEven そして compress
が提供出来る.
reset
論理値:既定値を ‘工場出荷時’の値にリセットするか?
Details
もし reset = TRUE と ... の両方が提供されると,既定値は先ず‘工場出荷時’の値リセッ
トされそれから新しい値が適用される.
Value
全ての既定値の名前付きリスト.もしある引数が提供されると返り値は古い値であり,
結果は可視フラグがオフにされる.
See Also
pdf, ps.options.
Examples
pdf.options(bg = "pink")
utils::str(pdf.options())
pdf.options(reset = TRUE) # 工場出荷値に復帰
pictex
61
pictex
PicTeX ドライバー
Description
この関数は TeX と LaTeX ドキュメント中に含めるのに適した簡単なグラフィクスを作
る.これは R のごく初期のもので歴史的興味しか無い.
Usage
pictex(file = "Rplots.tex", width = 5, height = 4, debug = FALSE,
bg = "white", fg = "black")
Arguments
file
出力が置かれるファイル.
width
インチ単位のプロット幅.
height
インチ単位のプロット高さ.
debug
デバッグ情報をプリントすべきか.
bg
プロットの背景色.無視される.
fg
プロットの前景色.無視される.
Details
このドライバは R に含まれる他のグラフィックスドライバよりもかなり基本的である.
これは如何なるフォントメトリック情報も持たないので, plotmath の使用はサポートさ
れていない.
線幅は線のテクスチャを設定する場合を除き無視される. pch = "." は幅 1pt の正方形
に対応する.
このドライバは色をサポートしない(PicTeX パッケージも)し,全ての色設定は無視され
る.
テキストはファイルにそのままで記録されるので, TeX の特殊文字(アンパサンドやアン
ダスコアのような)を含む注釈はそれらが TeX に登場するように引用化される必要があ
る.
複数のプロットは出力ファイルに別個の環境として置かれる.
慣例
この節は “R Internals Manual” 中で設定されているグラフィックスデバイスに対する慣例
の実装を解説する.
• デバイスの規定サイズは 5 インチ対 4 インチである.
• pointsize 引数はない:既定サイズは 10 ポイントと解釈される.
• 唯一のフォントファミリは cmss10.
• 線幅は線のテクスチャの間隔を設定することだけに使われる.
• 任意の半径の円が許される.
• 色はサポートされていない.
62
plotmath
Author(s)
このドライバーは 1996–7 年ごろに Department of Internal Medicine, University of Genoa, Italy
の Valerio Aimale により提供された.
References
Knuth, D. E. (1984) The TeXbook. Reading, MA: Addison-Wesley.
Lamport, L. (1994) LATEX: A Document Preparation System. Reading, MA: Addison-Wesley.
Goossens, M., Mittelbach, F. and Samarin, A. (1994) The LATEX Companion. Reading, MA:
Addison-Wesley.
See Also
postscript, pdf, Devices.
より現代的な TeX に基づくグラフィックスは同名の CRAN パッケージ中の tikzDevice
(http://pgf.sourceforge.net/, しかしながら pdftex 経由で PDF の図を含めるのが
(La)TeX ドキュメントでは最も普通である).
Examples
require(graphics)
pictex()
plot(1:11, (-5:5)^2, type = "b", main = "Simple Example Plot")
dev.off()
##-------------------## Not run:
%% LaTeX の例
\documentclass{article}
\usepackage{pictex}
\usepackage{graphics} % \rotatebox 用
\begin{document}
%...
\begin{figure}[h]
\centerline{\input{Rplots.tex}}
\caption{}
\end{figure}
%...
\end{document}
## End(Not run)
##-------------------unlink("Rplots.tex")
plotmath
数学的注釈
plotmath
63
Description
R のテキストを描く関数 (text, mtext, axis, legend) の一つへの text 引数が表現式なら
ば,引数は数式と解釈され,出力は TeX 風の規則に従い整形される.表現式はまたタイ
トル,副タイトル,そして x と y 軸ラベルにも使うことが出来る(しかし persp プロット
の軸ラベルには使えない).
殆どの場合他の言語オブジェクト(名前と呼び出し,公式を含む)は表現式に強制変換さ
れるのでやはり使うことが出来る.
Details
数学表現は R 表現式の通常のシンタックス規則に従わねばならないが,通常の R 表現式
とは非常に異なる規則に従い解釈される.
多くの異なる数学シンボル,下付き・上付き添字,分数等を生成できる.
demo(plotmath) からの出力は利用可能な特性を示す幾つかの表を含む.これらの表の中
では,グレイのテキストの列はサンプルの R 表現式であり,黒のテキストの列は結果の
出力を示す.
利用可能な特性は下の表でも説明される:
シンタックス
x + y
x - y
x*y
x/y
x %+-% y
x %/% y
x %*% y
x %.% y
x[i]
x^2
paste(x, y, z)
sqrt(x)
sqrt(x, y)
x == y
x != y
x < y
x <= y
x > y
x >= y
x %~~% y
x %=~% y
x %==% y
x %prop% y
x %~% y
plain(x)
bold(x)
italic(x)
bolditalic(x)
symbol(x)
list(x, y, z)
...
意味
x プラス y
x マイナス y
x と y を併置する
x フォッワードスラッシュ y
x プラス・マイナス y
x を y で割る
x 倍の y
x 中点 y
x 下付き添字 i
x 上付き添字 2
x, y そして z を併置する
x の平方根
xのy乗
x は y に等しい
x は y に等しくない
x は y より小さい
x は y に等しいか小さい
x は y より大きい
x は y と等しいか大きい
x は近似的に y に等しい
x と y は合同
x は y として定義される
x は y に比例する
x は y に従い分布する
x を通常のフォントで描く
x を太字体で描く
x をイタリック体で描く
x を太字のイタリック体で描く
x をシンボルフォントで描く
コンマで分離されたリスト
(高さは変わる)
64
plotmath
cdots
ldots
x %subset% y
x %subseteq% y
x %notsubset% y
x %supset% y
x %supseteq% y
x %in% y
x %notin% y
hat(x)
tilde(x)
dot(x)
ring(x)
bar(xy)
widehat(xy)
widetilde(xy)
x %<->% y
x %->% y
x %<-% y
x %up% y
x %down% y
x %<=>% y
x %=>% y
x %<=% y
x %dblup% y
x %dbldown% y
alpha – omega
Alpha – Omega
theta1, phi1, sigma1, omega1
Upsilon1
aleph
infinity
partialdiff
nabla
32*degree
60*minute
30*second
displaystyle(x)
textstyle(x)
scriptstyle(x)
scriptscriptstyle(x)
underline(x)
x ~~ y
x + phantom(0) + y
x + over(1, phantom(0))
frac(x, y)
over(x, y)
atop(x, y)
sum(x[i], i==1, n)
prod(plain(P)(X==x), x)
integral(f(x)*dx, a, b)
エリプシーズ(垂直にセンタリング)
エリプシーズ(基礎線位置)
x は y の真部分集合 y
x は y の部分集合
x は y の部分集合ではない
x は y を真に含む
x は y を含む
x は y の要素
x は y の要素ではない
ハット記号付きの x
チルド付きの x
ドット付きの x
リング付きの x
バー付きの xy
大きなハット記号付きの xy
大きなチルド付きの xy
x 二重矢印
x 右向き矢印 y
x 左向き矢印
x 上向き矢印 y
x 下向き矢印 y
x は y と同値
x は y を含意する
y は x を含意する
x 二重上向き矢印 y
x 二重下向き矢印 y
ギリシャ文字
大文字のギリシャ文字
筆記体ギリシャ文字
フック付きの大文字ウプシロン
ヘブライアルファベットの最初の文字
無限記号
偏微分記号
ナブラ,グラディエント記号
32 度
マイナス 60 度
角度の 30 分
普通のサイズの x (余分の間隔)
x を普通のサイズで描く
x を小さなサイズで描く
x を非常に小さなサイズで描く
x に下線を引く
x と y の間に余分の隙間
"0" 分の隙間,しかしそれを描かない
"0" に対する垂直ギャップを残す(描かない)
y の上に x
y の上に x
y の上に x (水平線なし)
x[i] を i が 1 から n まで加える
P(X=x) を全ての x お値に対して掛ける
f(x) の x に対する定積分
plotmath
65
union(A[i], i==1, n)
intersect(A[i], i==1, n)
lim(f(x), x %->% 0)
min(g(x), x > 0)
inf(S)
sup(S)
x^y + z
x^(y + z)
x^{y + z}
group("(",list(a, b),"]")
bgroup("(",atop(x,y),")")
group(lceil, x, rceil)
group(lfloor, x, rfloor)
A[i] の i が 1 から n までの合併集合
A[i] の九通集合
f(x) の x が 0 に近づくときの極限
g(x) の 0 より大きな x に対する最小値
S の下限
S の上限
通常の演算子の優先度
被演算項の目に見えるグルーピング
被演算項の不可視のグルーピング
左右の分離記号の指定
可変長の分離記号
特殊な分離記号
特殊な分離記号
サポートされる‘可変長分離記号’は | ( [ {, lceil, lfloor そしてそれらの右側バージョ
ンである. "." は "" と同値である:対応する分離記号は省略される.分離記号 || はサ
ポートされるが | と同じ効果を持つ.
シンボルフォントは Adobe のシンボルエンコーディングを用いるので,例えば,小文
字の mu は特殊シンボル mu でも symbol("m") ででも得られる. これは特殊なシンボ
ル名を持たないシンボルへのアクセスを許し,例えば universal 又は forall シンボルは
symbol("\042") である.どのようなシンボルがこのようにして得られるかは points に
対する例で与えられたように TestChars(font=5) を使う:幾つかはある種のデバイスで
だけ利用できる.
TeX ユーザへの注意: TeX の ‘\Upsilon’ は Upsilon1,TeX の ‘\varepsilon’ は epsilon
に知覚, TeX の ‘\epsilon’ と同値なものはない. TeX の ‘\varpi’ は omega1 に近い.
vartheta, varphi そして varsigma は theta1, phi1 そして sigma1 に対する同義語として
許される.
sigma1 はまたその Unicode 名である stigma としても知られる.
制御文字(例えば ‘\n’) は普通のプロットとは異なり plotmath では文字列として解釈され
ない.
使われるフォントは現在のフォントファミリから取られるので,基本グラフィックスで
は par(family=) で,パッケージ grid では gpar(fontfamily=) で得られる.
bold, italic そして bolditalic はシンボルには適用されす,従って mu のようなシンボ
ルフォントとして表示される ギリシャ文字には適用されない.それらはまた数値定数に
も適用されない.
他のシンボル
多くの OS とある種のグラフィックスデバイスでは他の多くのシンボルが標準的なテキ
ストの一部として利用でき, Adobe シンボルエンコーディング中の全てのシンボルが原
則としてフォントフェイスの変更か (‘詳細’節を見よ) plotmath 経由で利用できる:それ
らを表示する関数については points の例を見よ. (‘原則として’とは幾つかのグリフが
ある種のシンボルフォントの実装から欠損しているからである.) 不幸にも postscript
と pdf はヨーロッパ(ギリシャを除く)と CJK 文字,そして Adobe シンボルエンコーディ
ング (そしてキリル文字を含む僅かなフォント)以外はほとんどサポートしていない.
(以下は Unix 固有の解説)
UTF-8 ロケールでは恐らく ‘\uxxxx’ 又は ‘\Uxxxxxxxx’ の形式のエスケープ列として任意
の Unicode 文字を入力出来るが,問題はグラフィックスデバイスが文字を表示できるか
どうかということである.最も広範囲の文字は恐らく cairo に基づく X11 デバイスで利用
66
plotmath
できる:追加のフォントをどのようにインストールするかに関するそのヘルプページが
役に立つであろう.これはしばしばギリシャ文字を太字体やイタリック体で表示するた
めに使われる.
UTF-8 でないロケールでは普通現在のエンコーディングが意図していない言語でのシン
ボルに対するサポートはない.
(以下は Windows 固有の解説)
任意の Unicode 文字が ‘\uxxxx’ エスケープ列や points への世に出しに数字を使うことで
テキスト文字に入力できる.デバイスの windows ファミリは使用中のフォント中で利用
可能ならそうした文字を表示できる.これはしばしばギリシャ文字を太字体やイタリッ
ク体で表示するために使われる.
フォント中でどのような文字が利用できるか,そして Unicode 番号を決める双方のため
に良い方法は ‘Character Map’アクセサリ (普通 ‘Start’ メニュー上の ‘Accessories->System
Tools’ の下)を使うことである.もしくは ‘Character Map’ ウィンドからコピーアンドペイ
ストで Rgui コンソールにコピーすることである (Rterm ではない).
References
Murrell, P. and Ihaka, R. (2000) An approach to providing mathematical annotation in plots. Journal
of Computational and Graphical Statistics, 9, 582–599.
シンボルのコードは8進法で Adobe reference manuals 中にある,例えば Postscript に対し
ては https://www.adobe.com/products/postscript/pdfs/PLRM.pdf 又は PDF については
https://www.adobe.com/devnet/acrobat/pdfs/pdf_reference_1-7.pdf そして10, 8, 16進
法で以下に http://www.stat.auckland.ac.nz/~paul/R/CM/AdobeSym.html.
See Also
demo(plotmath), axis, mtext, text, title, substitute quote, bquote
Examples
require(graphics)
x <- seq(-4, 4, len = 101)
y <- cbind(sin(x), cos(x))
matplot(x, y, type = "l", xaxt = "n",
main = expression(paste(plain(sin) * phi, " and ",
plain(cos) * phi)),
ylab = expression("sin" * phi, "cos" * phi), # 最初だけが使われる
xlab = expression(paste("Phase Angle ", phi)),
col.main = "blue")
axis(1, at = c(-pi, -pi/2, 0, pi/2, pi),
labels = expression(-pi, -pi/2, 0, pi/2, pi))
## "数式"と数値変数をどのようにつなげるか:
plot(1:10, type="n", xlab="", ylab="", main = "plot math & numbers")
theta <- 1.23 ; mtext(bquote(hat(theta) == .(theta)), line= .25)
for(i in 2:9)
text(i, i+1, substitute(list(xi, eta) == group("(",list(x,y),")"),
list(x = i, y = i+1)))
## これらの双方は表現式よりも呼び出しを使うことを注意.
##
text(1, 10, "Derivatives:", adj = 0)
text(1, 9.6, expression(
png
67
"
first: {f * minute}(x) " == {f * minute}(x)), adj = 0)
text(1, 9.0, expression(
"
second: {f * second}(x) "
== {f * second}(x)), adj = 0)
plot(1:10, 1:10)
text(4, 9, expression(hat(beta) == (X^t * X)^{-1} * X^t * y))
text(4, 8.4, "expression(hat(beta) == (X^t * X)^{-1} * X^t * y)",
cex = .8)
text(4, 7, expression(bar(x) == sum(frac(x[i], n), i==1, n)))
text(4, 6.4, "expression(bar(x) == sum(frac(x[i], n), i==1, n))",
cex = .8)
text(8, 5, expression(paste(frac(1, sigma*sqrt(2*pi)), " ",
plain(e)^{frac(-(x-mu)^2, 2*sigma^2)})),
cex = 1.2)
## その他の有用なシンボル
plot.new(); plot.window(c(0,4), c(15,1))
text(1, 1, "universal", adj = 0); text(2.5, 1, "\\042")
text(3, 1, expression(symbol("\042")))
text(1, 2, "existential", adj = 0); text(2.5, 2, "\\044")
text(3, 2, expression(symbol("\044")))
text(1, 3, "suchthat", adj = 0); text(2.5, 3, "\\047")
text(3, 3, expression(symbol("\047")))
text(1, 4, "therefore", adj = 0); text(2.5, 4, "\\134")
text(3, 4, expression(symbol("\134")))
text(1, 5, "perpendicular", adj = 0); text(2.5, 5, "\\136")
text(3, 5, expression(symbol("\136")))
text(1, 6, "circlemultiply", adj = 0); text(2.5, 6, "\\304")
text(3, 6, expression(symbol("\304")))
text(1, 7, "circleplus", adj = 0); text(2.5, 7, "\\305")
text(3, 7, expression(symbol("\305")))
text(1, 8, "emptyset", adj = 0); text(2.5, 8, "\\306")
text(3, 8, expression(symbol("\306")))
text(1, 9, "angle", adj = 0); text(2.5, 9, "\\320")
text(3, 9, expression(symbol("\320")))
text(1, 10, "leftangle", adj = 0); text(2.5, 10, "\\341")
text(3, 10, expression(symbol("\341")))
text(1, 11, "rightangle", adj = 0); text(2.5, 11, "\\361")
text(3, 11, expression(symbol("\361")))
png
ビットマップ用グラフィックスデバイス
Description
BMP, JPEG, PNG そして TIFF 書式のビットマップファイルに対するグラフィックスデバ
イス.
Usage
bmp(filename = "Rplot%03d.bmp",
width = 480, height = 480, units = "px", pointsize = 12,
bg = "white", res = NA, ...,
68
png
type = c("cairo", "Xlib", "quartz"), antialias)
jpeg(filename = "Rplot%03d.jpeg",
width = 480, height = 480, units = "px", pointsize = 12,
quality = 75,
bg = "white", res = NA, ...,
type = c("cairo", "Xlib", "quartz"), antialias)
png(filename = "Rplot%03d.png",
width = 480, height = 480, units = "px", pointsize = 12,
bg = "white", res = NA, ...,
type = c("cairo", "cairo-png", "Xlib", "quartz"), antialias)
tiff(filename = "Rplot%03d.tiff",
width = 480, height = 480, units = "px", pointsize = 12,
compression = c("none", "rle", "lzw", "jpeg", "zip", "lzw+p", "zip+p"),
bg = "white", res = NA, ...,
type = c("cairo", "Xlib", "quartz"), antialias)
Arguments
filename
出力ファイルの名前. 既定のようにもし C の整数書式が文字列に含
まれるとページ番号が代入される.(結果は長さが PATH_MAX 文字以下
でなければならず,もしそうでなければ打ち切られる. より詳細は
postscript を見よ.) プラットフォームがサポートすればチルド展開が
行われる.
width
デバイスの幅.
height
デバイスの高さ.
units
height と width が与えられる単位. px (ピクセル,既定値),in (イン
チ), cm 又は mm.
pointsize
プロットされるテキストの既定サイズ, res ppi でビッグポイント(1/72
インチ)と解釈される.
bg
初期背景色:par("bg") の設定で上書きされる.
quality
パーセンテージでの JPEG イメージの‘品質’.より小さな値はより大き
な圧縮を行うがイメージはより劣化する.
compression
使用される圧縮のタイプ.もし type = "quartz" なら無視される.
res
もし正整数ならばビットマップに記録される ppi 単位の名目上の解像
度.また既定以外の units に対してやポイントをピクセルに変換する
のにも使われる.
...
type = "Xlib" の時のみ, fonts や family のような基礎にある X11 デ
バイスへの追加引数
タイプ "cairo" と "quartz" に対しては,family 引数を提供できる.
X11 に対するヘルプの ‘Cairo フォント’節を見よ.
type
文字列, "Xlib" 又は "quartz" (ある種の OS X ビルド)又は "cairo" の一
つ.後者はシステムが cairo のサポート付きでコンパイルされた時だけ
利用できる – さもなければ "Xlib" が使われる.既定は getOption("bitmapType")
で設定される – ‘そのままで動作する’既定は利用できれば "quartz" か
"cairo",さもなければ "Xlib".
png
69
antialias
type = "cairo" に対して,フォントと線に使われるアンチエイリアシ
ング(もしあれば)のタイプ. X11 を見よ.既定は X11.options で設定さ
れる.また type = "quartz" に対しても同様で, antialias = "none"
で無い限りアンチエイリアシングが使われる.
Details
PNG と JPEG 書式のプロットは容易に他のビットマップ書式に変換でき,どちらも現代
のウェッブブラウザで表示できる. PNG 書式は無劣化であり線図式や色ブロックに対し
て最良である. JPEG 書式は劣化しやすいが,例えばイメージプロットには有用かもし
れない. BMP は Windows では標準の書式である. TIFF はメタ書式である: tiff で書
かれる既定の書式は劣化が無く RGB 値 (適切であればアルファ値も) は無圧縮である —
そうしたファイルは広く受け入れられ,それがそれらの PNG に対する主な長所である.
png は透明な背景をサポートする: bg = "transparent" を使う. (全ての PNG ビューア
ーが透明性を正しく表示するわけではない.) type = "Xlib" の変種で透明性が使われる
と非常に明るいグレイが背景として使われるので,プロットで使われると透明のように
見える.
これは例におけるように不透明な白を使うことを許す. type = "cairo", type = "cairo-png"
そして type = "quartz" の変種は半透明色を許し,透明や半透明な背景を含む.
タイプ "cairo" と "quartz" の tiff は半透明色をサポートし,透明や半透明な背景を
含む. 圧縮タイプ "zip" は ‘deflate (Adobe スタイル)’ である. 圧縮タイプ "lzw+p" と
"zip+p" は圧縮法との組み合わせで水平の階差 (‘階差予測’,TIFF 仕様の14節)を使うが,
これは連続イメージに対して有効で,特に色付きの場合がそうである.
R はこれらのデバイスの各々に対し幾つか又は全てのタイプに対するサポート無しでコ
ンパイルできる:これらがサポートされていないシステム上でそれらを使おうとすると
報告がされる. type = "Xlib" に対しては X11 ディスプレイが R プロセスの所有者でな
い限りそれらは使用できないかもしれない. type = "cairo" は cairo 1.2 又はそれ以降を
必要とする. type = "quartz" は quartz デバイスを使うので,それが使える場合だけ利
用できる (ある種の OS X ビルド:capabilities("aqua") を見よ).
既定では BMP を除いて如何なる解像度もファイルには記録されない.記録がない場合ビ
ューアーはしばしば解像度 72 ppi を仮定する. PNG ファイル中の解像度はピクセル/メ
ートルで記録されるので,報告される ppi 値は少し変更される.
インチ単位の次元を使うグラフィックスパラメータに対しては (ポイント単位のフォン
トサイズを含む)使われる解像度は res (又は未設定なら 72 ppi)である.
png はページに256未満の色があるならば普通パレットを使い,さもなければ24ビットの
RGB ファイルを使う (又は type = "cairo" で不透明でない色が使われれば 32ビットの
ARGB ファイルが使われる).しかしながら type = "cairo-png" は cairographics の PNG
バックエンドを使い,これは決してパレットを使わず普通より大きな 32 ビットの ARGB
ファイルを作る — これは半透明色を用いたスペシャリスト用途に対してより良く動作す
るかもしれない.
透明な背景を持つ Quartz 製の PNG と TIFF プロットは暗いグレイの艶消しで記録され,
これは OS X の Preview を含むある種のビューアー中で表示される.
R 3.0.3 以前では BMP ファイル中の未知の解像度は不正確に記録されていた:それらは
今では 72 ppi で記録される.
Value
プロット用のデバイスが開かれる: R インタプリタには何も返されない.
70
png
警告
既定では width と height の値の単位はピクセルでありインチではないことを注意する.
もし両者が20以下なら警告が出る.
もしこれらのデバイス上で一つよりも多いプロットを行い file 中に系列番号に対する
%d の様なものを含めなければ,ファイルはプロットされた最後のページを含む.
OS 間の違い
これらの関数は三つ又はそれ以上の基礎にあるデバイスへのインタフェイスである.
• Windows ではデバイスは Windows の GDI 呼び出しを用いた隠れたスクリーンへの
プロットに基づいている.
• X11 に対するサポートを持つプラットフォームでは,隠れた X11 ディスプレイへの
プロットを使う.
• OS X ではコンソールで作業しており R が適当なサポート付きでコンパイルされて
いると, Apple の Quartz プロットシステムを使う.
• cairo グラフィックスに対するサポートがコンパイルされていれば, cairo サーフ
ィスへのプロットを使う.これはフォントに対するネイティブなプラットフォー
ムのサポートを使うかもしれない.又は広範囲のフォントをサポートするために
fontconfig を使うかもしれない. (これは Windows では R 2.14.0 で始めて使えるよ
うになった.)
サポートされるオプションと作られる出力には違いが避けられない.恐らく最も重要な
ものはアンチエイリアシングされたフォントと半透明色であろう:最良の結果はもし使
えるのならば cairo 又は Quartz に基づくデバイスであろう.
既定の拡張子は Windows では ‘.jpg’ と ‘.tif’ で,そしてほかでは ‘.jpeg’ と ‘.tiff’ で
ある.
慣例
この節は “R Internals Manual” で設定されているグラフィックスデバイスに対する慣例の
実装を説明する.
• 既定のデバイスのサイズはピクセル単位である.
• フォントサイズはビッグポイントで res ppi で解釈される.
• 既定のフォントファミリは Helvetica.
• 線幅は 1/96 インチ単位(res ppi で解釈される), type = "Xlib" に対する最少ピクセ
ルで, type = "cairo" に対しては 0.01.
• type = "Xlib" に対しては円半径はピクセル単位で最小値は 1.
• 色は眺めるアプリケーションにより解釈される.
type = "quartz" に対しては quartz のヘルプを見よ.
Note
type = "Xlib" に対してはこれらのデバイスは X11 デバイスに基づいている.使われる
色モデルは最初の Xlib に基づくデバイスが開かれた時に X11.options により設定される
(又はそれらのデバイスの全てが閉じられた後の最初に).
postscript
71
Author(s)
Guido Masarotto と Brian Ripley
References
PNG の仕様は http://www.w3.org/TR/PNG/.
拡張を含む TIFF の仕様は https://partners.adobe.com/public/developer/tiff/.
See Also
Devices, dev.print
これらのデバイスそして type = "cairo" がこの R のビルドでサポートされているかど
うかを見るには capabilities.
bitmap は多くのビットマップ書式のプロットを生成する別の方法を提供する.これは
X11 ディスプレイへのアクセスには依存しないが GhostScript がインストールされている
必要がある.
Examples
## これらの例はデバイスが利用でき, cairo 又は X11 ディスプレイ
## 又は OS X ディスプレイが利用できる時だけ動作する.
## 現在のプロットを(大きな) PNG ファイルにコピー
## Not run: dev.print(png, file = "myplot.png", width = 1024, height = 768)
png(file = "myplot.png", bg = "transparent")
plot(1:10)
rect(1, 5, 3, 7, col = "white")
dev.off()
## myplot1.jpeg と myplot2.jpeg が出来る
jpeg(file = "myplot%d.jpeg")
example(rect)
dev.off()
postscript
ポストスクリプトグラフィックス
Description
postscript はポストスクリプトグラフィックスを生成するグラフィックスデバイスを開
始する.
Usage
postscript(file = if(onefile) "Rplots.ps" else "Rplot%03d.ps",
onefile, family, title, fonts, encoding, bg, fg,
width, height, horizontal, pointsize,
paper, pagecentre, print.it, command,
colormodel, useKerning, fillOddEven)
72
postscript
Arguments
file
ファイルの名前を与える文字列.もしこれが "" なら出力は command で
与えられる命令にパイプされる.もしこれが形式 "|cmd" なら,出力は
cmd で与えられる命令にパイプされる.
onefile = FALSE と共に使うためには "Rplot%03d.ps" (この場合の既
定)のような printf 書式を使う.さもなければ文字列は % を含むべきで
はない:もしこれがどうしても必要なら,ファイル名中の % に対する
文字列に %% を使う.正規表現 "%[#0 +=-]*[0-9.]*[diouxX]" にマッチ
する単一の整数書式が許される.
チルド展開(path.expand を見よ)が行われる.
onefile
論理値:もし真なら(既定値)一つのファイルに複数の図が許される.も
し偽なら,各ページにページ番号を含むファイル名が作られ, EPSF ヘ
ッダーを使い DocumentMedia コメントはない.既定は TRUE.
family
使用される初期フォントファミリで,普通文字列として与えられる.
‘ファミリ’節を見よ.既定では "Helvetica".
title
ファイルの Title コメントとして埋め込まれるタイトル文字.既定は
"R Graphics Output".
fonts
追加の R グラフィックスフォントファミリ名を指定する文字列で,そ
の宣言は PostScript ファイルに含められデバイスと共に使うことが出来
る.下の‘ファミリ’節を見よ.既定は NULL.
encoding
エンコーディングファイルの名前.既定値は "default".後者は Unix
では ISO 8859-{2,5,7,13,15} 又は KOI8-{R,U} を使う言語に対応すると認
識されるロケールでない限り ‘"ISOLatin1.enc"’ と解釈される.
Windows では,もしこれらのコードページの一つが使用されているな
らば ‘"CP1250.enc"’ (中央ヨーロッパ), "CP1251.enc" (キリル), "CP1253.enc"
(ギリシャ) 又は "CP1257.enc" (バルティック).さもなければ ‘"WinAnsi.enc"’
(コードページ 1252).
ファイルはもしパスがパス分離記号を含まなければパッケージ grDevices の ‘enc’ ディレクトリ中で探される. 拡張子 ".enc" は省略でき
る.
bg
使用される初期背景色.もし "transparent" (又は任意の他の不透明で
ない色)なら背景は塗られない.既定は "transparent".
fg
使用される初期前景色.既定は "black".
width, height
インチ単位のグラフィックス領域の幅と高さ.既定値は 0.
もし paper != "special" で width か height が 0.1 未満か,又は総計で
0.5 インチの余白を与えるには大きすぎれば,グラフィックス領域は対
応する用紙のサイズから 0.5 を引いたものにリセットされる.
horizontal
論理値,プリントイメージの方向.既定では真で,幅が高さより小さ
い用紙サイズではランドスケープ方向.
pointsize
使用される既定のポイントサイズ.厳密に言えば単位は 1/72 インチで
ある bp であるが,ポイントでは近似値.既定は 12.
paper
プリンターでの用紙サイズ.選択は "a4", "letter" (又は "us"), "legal"
そして "executive" (そしてこれらは大文字でも良い).又引数 width と
height が用紙サイズを指定するときは "special" を使うことが出来る.
もうひとつの選択は "default" (既定)である:もしこれが選択されると
用紙サイズはそれが設定されていればオプション "papersize" から取
られ,未設定か空なら "a4" となる.
pagecentre
論理値:デバイス領域をページでセンタリングするか? 既定では真.
postscript
73
print.it
論理値:デバイスが閉じられた時ファイルをプリントすべきか? (これ
はもし file が真のファイル名の時だけ適用される.) 既定値は偽.
command
‘プリント’に対して使われる命令.既定値は "default" でオプション
"printcmd" の値.長さの上界は 2*PATH_MAX で,Unix では典型的に 8096
バイトで,Windows では 520 バイト.
colormodel
色モデルを記述する文字列:現在許される値は "srgb", "srgb+gray",
"rgb", "rgb-nogray", "gray" (又は "grey") そして "cmyk". 既定では
"srgb". ‘色モデル’の節を見よ.
useKerning
論理値.テキストの設定中にカーニング補正と文字列幅の計算を含め
るべきか? 既定値は TRUE.
fillOddEven
多角形の塗りつぶしモードを制御する論理値:詳細は polygon を見よ.
既定値は FALSE.
Details
file を除く全ての引数の既定は ps.options() で与えられる.究極の既定値は引数節で
引用されている.
postscript はファイル file を開き,任意の要求されたグラフィックスをプロットする
ために必要なポストスクリプト命令がそのファイルに書き込まれる.このファイルはそ
れから適当なデバイス上でハードコピーを得るために開くことが出来る.
file 引数は sprintf が使うような C 整数書式として解釈され,整数引数はページ番号に
なる.既定値はファイル ‘Rplot001.ps’, . . . , ‘Rplot999.ps’, ‘Rplot1000.ps’, . . . を与える.
単一の R プロットに対して作られるポストスクリプトは EPS (Encapsulated PostScript) 互
換であり,例えば LaTeX のような他のドキュメントに \includegraphics{<filename>}
を使って含めることが出来る.このようにして使うためには恐らくsetEPS() を使い既定
horizontal = FALSE, onefile = FALSE, paper = "special" を設定したいであろう.バ
ウンディングボックスは デバイス領域に対するものになる:もしプロット領域のまわり
の余白が多すぎると思うのなら par(mar = ) を使って図領域を減らす.
殆どの PostScript の序辞は R の文字列ベクトル .ps.prolog から取られる.これは出力中
にマークされ,そのベクトルを変項することで変更できる. (これはポストスクリプトの
エキスパートにだけ勧められる:標準バージョンは namespace:grDevices 中にある.)
ポストスクリプトデバイスは既定のファミリを持ち,これはユーザが family を使って設
定できる.ポストスクリプトデバイスに描く時他のフォントファミリを使うべきならば,
それらはデバイスが作られる時 fonts を使って宣言されなければならない;この引数の
フォントファミリ名は R のグラフィックスフォントファミリ名である (postscriptFonts
に対するドキュメントを見よ).
par(lwd = ) で制御される線幅は 1/96 インチの倍数である: 1 未満の倍数が許される.
cex = 1 の pch = "." は幅が 1/72 インチの正方形で,これはまた "cra" 等のグラフィッ
クスパラメータに対して仮定される ‘ピクセル’サイズである.
背景色が完全に透明 (初期値がそうであるように)の時は,ポストスクリプトは背景を塗
らない.ほとんどすべてのポストスクリプトのビューアーは白いキャンバスを使うので,
視覚的効果はあたかも背景が白であるように見える.しかしながら,これは色付き用紙
にプリントする場合はそうではない.
ファミリ
フォントファミリは五種類のフォントフェイス (慣例的に plain, bold, italic, bold-italic そし
て symbol)を集めたもので,グラフィックスパラメータ par(font = ) やグリッドパラメ
ータ gpar(fontface = ) により選択される.フォントファミリは family 引数によるデ
74
postscript
バイスに対する初期/既定フォントファミリとして,又はデバイスが開かれた後でグラフ
ィックスパラメータ par(family = ) 又はグリッドパラメータ gpar(fontfamily = ) に
より指定出来る.初期ファミリに加えて使われるファミリはデバイスが開かれるときに
fonts 引数中で指定されなければならない.
フォントファミリは postscriptFonts への呼び出しで宣言される.
引数 family は使われる初期/既定フォントファミリを指定する.通常の使用ではこれは
"AvantGarde", "Bookman", "Courier", "Helvetica", "Helvetica-Narrow",
"NewCenturySchoolbook", "Palatino" 又は "Times" の一つであり,全ての通常のポスト
スクリプトデバイス中に含まれる (又はクローン化されている)その名前の標準の Adobe
ポストスクリプトフォントを参照する.
多くのポストスクリプトのエミュレータ (ghostscript に基づくものを含む)はこれ
らのフォントに同値な URW を使い, これらはそれぞれ "URWGothic", "URWBookman",
"NimbusMon", "NimbusSan", "NimbusSanCond", "CenturySch", "URWPalladio" そして "NimbusRom"
である.もし自分のポストスクリプトデバイスが URW フォントを使っているのならば,
これらの名前を使うことでより多くの文字と適当なメトリックにアクセスできる.これ
らを覚えやすくするために "URWHelvetica" == "NimbusSan" と "URWTimes" == "NimbusRom"
がまたサポートされている.
別 の タ イ プ の フ ァ ミ リ は 東 ア ジ ア 言 語 に 対 し CID-keyed フ ォ ン ト を 使 っ て い る –
postscriptFonts を見よ.
family 引 数 は 普 通 フ ォ ン ト フ ァ ミ リ の 名 前 で あ る 文 字 列 で あ る が, Type1Font と
CIDFont で生成されるファミリオブジェクトがまた受け入れられる. 以前のバージョ
ンの R との互換性から,初期ファミリはまた 4又は5種類の afm ファイルのベクトルで指
定することも出来る.
R はポストスクリプト出力中で使われるフォントを埋め込まないことを注意する:これ
を助けるためのユーティリティについては embedFonts を見よ.
ビューアー又は埋め込みアプリケーションは頻繁にファミリ中で指定されたものに対し
てフォントを置き換え,そして置き換えはしばしば少々異なるフォントメトリックを持
つ.
useKerning = TRUE は意図されたファミリに対するカーニング補正を用いて文字を配置
する:これは useKerning = FALSE の時よりも醜い外観を持つかもしれない.
エンコーディング
エンコーディングは文字コード (範囲 0–255 中)を表示するときにどのグリフを使うかを
記述する.最も普通には R は ISOLatin1 エンコーディングを使い,そして text に対する
例はそのエンコーディングを使っている.しかしながら,R が稼働している機械で使わ
れているエンコーディングは異なるかもしれず,そして encoding 引数を使うことにより
グリフは使用中のエンコーディングにマッチさせることが出来る.これはヨーロッパと
キリル言語に対しては十分であるが,東アジア言語に対しては不十分である.後者に対
しては,複合 CID フォントが使われる.これらのフォントは他の言語に対しても有用で
ある:例えばそれらはギリシャ語のグリフを含む. (この節の残りは CID フォントが使
われない時だけに適用される.)
全てのエンコーディング("TeXtext" を除く)はその範囲で一致するため,これのどれ
ももし ASCII 文字(codes 32–126)を使うのなら何も問題はない. ある種のエンコーデ
ィングも ISOLatin1 の上位集合である. しかしながら,もしアクセント付きや特殊文
字が期待したようには現れなければ,エンコーディングを変える必要があるかもし
れない. 幾つかの他のエンコーディングが R に用意されている: "WinAnsi.enc" と
"MacRoman.enc" は普通 Windows と Classic Mac OS (少なくとも Adobe によって)で使わ
れ,そして "PDFDoc.enc"は Unicode の最初の 256 文字であり,PDF に対しての標準で
postscript
75
ある.又エンコーディング "ISOLatin2.enc", "CP1250.enc", "ISOLatin7.enc" (ISO 885913), "CP1257.enc",そして "ISOLatin9.enc" (ISO 8859-15), "Cyrillic.enc" (ISO 8859-5),
"KOI8-R.enc", "KOI8-U.enc", "CP1251.enc", "Greek.enc" (ISO 8859-7) そして "CP1253.enc"
がある.これらのエンコーディング中の多くのグリフは標準的なファミリに対応するフ
ォント中にないことを注意する. (Adobe のものは Courier 以外の全て,Helvetica と Times
は Latin-1 より僅かに多く,他方で URW のものは Latin-2, Latin-7, Latin-9 そしてキリル文
字を含むがギリシャ文字は含まない. Adobe の例外は Latin 文字集合を含むが,ユーロ
は含まない.)
もしエンコーディングを指定すると,ポストスクリプトフォントが使われるグリフ
を含むことを確実にするのは自分の責任になる. ここでの一つの話題は WinAnsi と
MacRoman エンコーディング中にあるがポストスクリプトフォントには無いユーロシン
ボルである. (これは URW の変種中にある;しかし提供される Adobe フォントメトリッ
クファイル中にない.)
ある例外がある.文字 45 ("-") は他のエンコーディング中ではハイフンであるが常にマ
イナス(その Adobe ISOLatin1 中の値)と設定される.ハイフンは全ての Latin エンコーデ
ィング,キリルそしてギリシャ語で文字 173 (8進数 0255) で得られる.グリフ 39 と 96 の
記述にはある相違がある: Adobe のドキュメントにあるように,提供されるエンコーデ
ィング (CP1250 と CP1251 を除く)はそれらを ‘右引用符’と‘左引用符’ (それぞれ‘一重引用
符’/‘アキュート’と ‘グレーブ’ではなく)として扱う.
TeX フォント
TeX は伝統的にかなり異なった7ビットのエンコーディングを持つ Computer Modern のよ
うなフォントを使ってきた.このエンコーディングは encoding = "TeXtext.enc" で指定
できるが,アスキー文字 < > \ _ { } はこれらのフォントでは利用できないことを注意
する.
このエンコーディングを使うファミリ "ComputerModern" と "ComputerModernItalic" が
提供されており,これは postscript (そして pdf ではない)に対してだけサポートされて
いる.これらは TeX の CM フォントの Type 1 バージョンとして使うことが意図されてい
る.普通 dvips -Ppfb -j0 や自分のシステムでの同値物で処理されている限り,そうし
た出力を TeX や LaTeX に含めることが出来るであろう. (-j0 はフォントの置換えをオ
フにする.) family = "ComputerModern" が使われた時は,使われるイタリック/ボールド
イタリック体は斜体である (cmsl10 と cmbxsl10).テキストイタリック体を代わりに使う
には, family = "ComputerModernItalic" を設定する.
これらのファミリは,他のファミリ中で Adobe シンボルフォントによりカバーされるグ
リフの広くはあるが不完全な範囲に対して TeX の数式イタリック体とシンボルフォント
を使う.提供された ‘CM_symbol_10.afm’ から生成されたポストスクリプトコードの特殊
な梱包により実現される.
色モデル
既定の色モデル ("srgb") は sRGB である.
もうひとつの "srgb+gray" は色に対して sRGB を使うが,グレイスケールとして表現さ
れた白の pure gray 色(黒と白を含む)を使う (これはより小さなファイルになりある種のプ
リンタードライバーに対しては利点になり得る).逆に,そのファイルはある種のビュー
アーではかなり描画が遅くなり得,グレイと白を含む色勾配に認識できる不連続性が見
られるかもしれない.
他の可能性はグレイスケールだけに使われる(そして他の色を光度に変換する) "gray"
(又は "grey") と "cmyk" である. sRGB から CMYK への可能な最も簡単な変換 (https:
//en.wikipedia.org/wiki/CMYK_color_model#Mapping_RGB_to_CMYK) が使われ,ラスタ―
イメージは RGB で出力される.
76
postscript
後方互換性のために提供される色モデルは "rgb" (RGB+gray) と,調整された RGB を使
う "rgb-nogray" (2.13.0 以前の R で使われた)である.これらは少し小さなファイルにな
り描画がより速くなるかもしれないが,適正に調整されたビューアーを前提にしてい
る.
プリント
ポストスクリプトのプロットは postscript を使い二つの仕方でプリントできる.
1. 設定 print.it = TRUE はデバイスが閉じられた時引数 command 中に与えられた命令
が引数 "file" で呼び出されるようにする. command がそれを消去するように按配
しない限りプロットファイルは消去されないことを注意する.
2. file = "" や file = "|cmd" はパイプを使いプリントすることに使える.命令の開始
の失敗はR にではなく恐らく端末に報告され,この場合即座にデバイスを dev.off
で閉じる.
Windows では既定の "printcmd" は空でありもし print.it = TRUE を使うとエラーにな
る. PostScript ファイルをプリンタ用にスプールする適当な命令は http://www.cs.wisc.
edu/~ghost/index.html から利用可能な ‘RedMon’ 命令群にある.命令は最小化されたウ
ィンド中で実行される. GSView 4.x はより簡便かもしれない ‘gsprint.exe’ を提供す
る(これは Ghostscript のバージョン 6.50 又はそれ以降を必要とする).
慣例
この節は “R Internals Manual” 中で設定されているグラフィックスデバイスに対する慣例
の実装を解説する.
• デバイスの規定サイズは7インチ四方である.
• フォントサイズはビッグポイント.
• 既定のフォントファミリは Helvetica.
• 線幅は 1/96 インチの倍数で,最小値は 0.01 に強制される.
• 任意の半径の円が許される.
• 色は既定では sRGB と指定される.
非常に小さな線幅では線種は実線に強制されるかもしれない.
ラスタ―イメージは現在不透明色に限られる.
Note
ポストスクリプト出力に関して問題が起これば,問題は R ではなくビューアにあること
がより確からしいことを覚えておこう.もし可能ならば他のビューアを試してみよう.
ビューアに欠陥がある症状はイメージプロット上の見かけのグリッド線 (もし可能なら
グラフィックスのアンチエイリアシングをオフにしてみよ) そして欠損又は不正確なテ
キスト中のグリフである (ビューアは黙ってフォントの置換えを行っている).
不幸なことに殆どの Linux と OS X システムはこの問題を抱えており,グラフィックスの
アンチエイリアシングをオフにする明らかな方法はない.
Author(s)
Computer Modern フォントに対するサポートは Brian D’Urso <[email protected]>
の貢献に基づく.
postscript
77
References
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth &
Brooks/Cole.
See Also
postscriptFonts, Devices, そして ps.options と postscript の双方から呼び出される
check.options.
PostScript を作り出すことが出来る別のデバイスに対しては cairo_ps.
フォントファミリとエンコーディング,そして特に非 Latin-1 エンコーディングでのテキ
ストの処理と埋め込みフォントに対するより詳細は以下で見られる.
Paul Murrell and Brian Ripley (2006) Non-standard fonts in PostScript and PDF graphics. R News,
6(2):41–47. https://www.r-project.org/doc/Rnews/Rnews_2006-2.pdf.
Examples
require(graphics)
## Not run:
# グラフィックス出力に対するファイル "foo.ps" を開く
postscript("foo.ps")
# 希望のグラフを作成する
dev.off()
# ポストスクリプトデバイスを閉じる
postscript("|lp -dlw")
# 希望のグラフを作成する
dev.off()
# プロットがプリンターに現れる
# URW PostScript デバイス
postscript("foo.ps", family = "NimbusSan")
## Computer Modern TeX ドキュメント中へ含めるには,恐らく
postscript("cm_test.eps", width = 4.0, height = 3.0,
horizontal = FALSE, onefile = FALSE, paper = "special",
family = "ComputerModern", encoding = "TeXtext.enc")
## 結果のポストスクリプトファイルは
## dvips -Ppfb -j0 で使うことが出来る.
## エンコーディングの検査には次を使うことが出来る
TestChars <- function(encoding = "ISOLatin1", family = "URWHelvetica")
{
postscript(encoding = encoding, family = family)
par(pty = "s")
plot(c(-1,16), c(-1,16), type = "n", xlab = "", ylab = "",
xaxs = "i", yaxs = "i")
title(paste("Centred chars in encoding", encoding))
grid(17, 17, lty = 1)
for(i in c(32:255)) {
x <- i %% 16
y <- i %/% 16
points(x, y, pch = i)
}
dev.off()
}
## 多くの警告が出る.十分完全なフォントメトリックのセットを
## 得るためには URW を使う.
TestChars()
78
postscriptFonts
TestChars("ISOLatin2")
TestChars("WinAnsi")
## End(Not run)
postscriptFonts
ポストスクリプトのフォント
Description
これらの関数は R のグラフィックスフォントファミリの名前のポストスクリプトまたは
PDF のフォント記述への翻訳を処理し, postscript 又は pdf グラフィックスデバイスに
より使われる.
Usage
postscriptFonts(...)
pdfFonts(...)
Arguments
...
表示するマッピングを命名する文字列か,加えるか変更するマッピン
グを指定する名前付き引数.
Details
もしこれらの関数が引数無しで呼ばれると既存のマッピングをリストし,他方で名前付
きの引数で呼び出されるとマッピングを追加(又は変更)する.
ポストスクリプト又は PDF デバイスは既定のフォントファミリで作られるが (postscript
に対するドキュメントを見よ),デバイスで描画する際にフォントファミリを指定するこ
とも可能である (例えば,par 中の "family" 対するドキュメントと grid パッケージ中の
gpar 中の "fontfamily" に対するドキュメントを見よ).
デバイスに送られるフォントファミリは単純な文字列で,これはポストスクリプトフォ
ントのセットにマップされなければならない. postscript と pdf デバイスに対するマッ
ピングの別個のリストが現在の R セッション用に保持されておりユーザにより付け加え
ることが出来る.
postscriptFonts と pdfFonts 関数は既存のマッピングをリストしたり新しいマッピング
を定義するのに使うことが出来る. xxxFonts 関数がそれらをデータベースに加えるのに
使われる時, Type1Font と CIDFont 関数は新しいマッピングを定義するのに使うことが
出来る.
三つのデバイス独立のファミリ名に対して既定のマッピングが提供されている: sansserif フォントに対して "sans" ("Helvetica" 用), serif フォントに対して "serif" ("Times"
用) そして monospaced フォントに対して "mono" ("Courier" 用).
幾つかの標準の Adobe フォント(そして URW の同値物)に対するマッピングがまた提
供されている: "AvantGarde", "Bookman", "Courier", "Helvetica", "Helvetica-Narrow",
"NewCenturySchoolbook", "Palatino" そして "Times";"URWGothic", "URWBookman", "NimbusMon",
"NimbusSan" ("URWHelvetica" の同義語), "NimbusSanCond", "CenturySch", "URWPalladio"
そして "NimbusRom" ("URWTimes" の同義語).
postscriptFonts
79
更に "ComputerModern", "ComputerModernItalic" そして,R 3.1.0 以来,"ArialMT" (Monotype Arial)に対するマッピングがある.
最後に,別の節で説明される東アジアロケール用の既定マッピングが幾つかある.
フォントメトリックとエンコーディングの指定は postscript 関数のヘルプ中に説明され
ている.
フォントは結果のポストスクリプトや PDF ファイル中に埋め込まれないので,ポストス
クリプトや PDF プロットファイルを含むソフトウェアはフォントのアウトラインを埋め
込むべきである (普通 ‘.pfb’ か ‘.pfa’ ファイルから).又はプリンターのスプーラ―に指
示する DSC コメントかそれを行うアプリケーションを含める (embedFonts も見よ).
フォントファミリは postscriptFonts が呼び出された時に使われる引数名である R レベ
ルの名前と, family 成分である内部名の両方を持つ.これら二つの名前は全ての予め定
義されているフォントファミリに対して同じである.
フォントファミリが一旦使われるとそれは変更できない. ‘使用中’とは既に R セッショ
ン中にあるのと同じグラフィックスデバイスの起動に family 又は fonts 引数を使って指
定されたことを意味する. (これらの目的のためには xfig は postscript と同様であるが
が予め定義されたマッピングの幾つかだけを使用する.)
Value
一つ又は複数のフォントマッピングのリスト.
東アジアのフォント
東アジアロケールに対する幾つかの既定マッピングがある:
日本語に対しては "Japan1", "Japan1HeiMin", "Japan1GothicBBB", と "Japan1Ryumin";韓
国語に対しては "Korea1" と "Korea1deb";中国本土とシンガポールに対する(簡体中国
語) "GB1";香港と台湾に対する(繁体中国語) "CNS1".
これらは以下のフォントを参照する
Japan1 (PS)
Japan1 (PDF)
Japan1HeiMin (PS)
Japan1HeiMin (PDF)
Japan1GothicBBB
Japan1Ryumin
Korea1 (PS)
Korea1 (PDF)
Korea1deb (PS)
Korea1deb (PDF)
GB1 (PS)
HeiseiKakuGo-W5
ライノタイプ用日本語プリンターフォント
KozMinPro-Regular-Acro
Adobe Reader 7.0 からのフォントパック
HeiseiMin-W3
ライノタイプ用日本語プリンターフォント
HeiseiMin-W3-Acro
Adobe Reader 7.0 からの日本語フォントパック
GothicBBB-Medium
日本の商用ポストスクリプトプリンターフォント
Ryumin-Light
日本の商用ポストスクリプトプリンターフォント
Baekmuk-Batang
ある種の Linux で見られる TrueType フォント
HYSMyeongJoStd-Medium-Acro
Adobe Reader 7.0 からの韓国語フォントパック
Batang-Regular
Baekmuk-Batang の別名
HYGothic-Medium-Acro
Adobe Reader 4.0 からの韓国語フォント
BousungEG-Light-GB
ある種の Linux で見られる TrueType フォント
80
postscriptFonts
GB1 (PDF)
CNS1 (PS)
CNS1 (PDF)
STSong-Light-Acro
Adobe Reader 7.0 からの簡体中国語フォントパック
MOESung-Regular
Ken Lunde の CJKV リソース
MSungStd-Light-Acro
Adobe Reader 7.0 からの繁体中国語フォントパック
BousungEG-Light-GB は ftp://ftp.gnu.org/pub/non-gnu/chinese-fonts-truetype/ にあ
る. Ken Lunde の CJKV リソース は次にある ftp://ftp.oreilly.com/pub/examples/
nutshell/cjkv/adobe/samples/. これらはインストールされる必要がある,又はさも
なければ ghostscript のようなポストスクリプト/PDF インタプリタ―がそれらを利用でき
なければならない (そしてあらゆるインタプリタが TrueType フォントを処理できるわけ
ではない).
自分のポストスクリプト/PDF インタプリタがこれらの多くのフォントに対する別名
を提供するように設定されていることを気づくかもしれない.例えば, Windows 上の
ghostscript は普通の東アジアのフォント名を TrueType フォントにマップするようにオプ
ションでインストールできる. (同様に -Acro バージョンも付け加えたくなるであろう.
)
CID-keyed フォントに対するマッピングをくわえることは熟練者向けである.
Author(s)
Computer Modern フォントのサポートは Brian D’Urso の貢献による.
See Also
postscript と pdf;新しいフォントマッピングを指定するには Type1Font と CIDFont.
Examples
postscriptFonts()
## これは "ComputerModernItalic" を重複する.
CMitalic <- Type1Font("ComputerModern2",
c("CM_regular_10.afm", "CM_boldx_10.afm",
"cmti10.afm", "cmbxti10.afm",
"CM_symbol_10.afm"),
encoding = "TeXtext.enc")
postscriptFonts(CMitalic = CMitalic)
## 日本語に対する CID フォントは異なった CMap と
## 対応する cmapEncoding を使う.
`Jp_UCS-2` <- CIDFont("TestUCS2",
c("Adobe-Japan1-UniJIS-UCS2-H.afm",
"Adobe-Japan1-UniJIS-UCS2-H.afm",
"Adobe-Japan1-UniJIS-UCS2-H.afm",
"Adobe-Japan1-UniJIS-UCS2-H.afm"),
"UniJIS-UCS2-H", "UCS-2")
pdfFonts(`Jp_UCS-2` = `Jp_UCS-2`)
names(pdfFonts())
pretty.Date
81
pretty.Date
日付を見栄え良くプリント
Description
x 中の値の範囲をカバーする約 n+1 個の等間隔の ‘良い’値を計算する, min.n = 0 で x に
ユニークな値が唯一であれば長さは 1 かもしれない.
Usage
## S3 method for
pretty(x, n = 5,
## S3 method for
pretty(x, n = 5,
class
min.n
class
min.n
'Date'
= n %/% 2, sep = " ", ...)
'POSIXt'
= n %/% 2, sep = " ", ...)
Arguments
x
n
min.n
sep
...
クラス "Date" 又は "POSIXt" (つまり, "POSIXct" 又は "POSIXlt")のオ
ブジェクト.
区間の希望の数.
区間の最少数を与える非負整数.
文字列で,ある書式に対する分離記号 (例えば月と年の間)に使われる.
総称性との互換性のための追加引数で無視される.
Value
位置(適当なクラスの)のベクトルで, "labels" は対応する整形済みの文字列ラベルを持
つ.
See Also
既定メソッドについては pretty.
Examples
pretty(Sys.Date())
pretty(Sys.time(), n = 10)
pretty(as.Date("2000-03-01")) # R 1.0.0 は閏年に登場
## 様々なスケールでの時間範囲:% also in ../../../../tests/reg-tests-1c.R
require(stats)
steps <- setNames(,
c("10 secs", "1 min", "5 mins", "30 mins", "6 hours", "12 hours",
"1 DSTday", "2 weeks", "1 month", "6 months", "1 year",
"10 years", "50 years", "1000 years"))
x <- as.POSIXct("2002-02-02 02:02")
lapply(steps,
function(s) {
at <- pretty(seq(x, by = s, length = 2), n = 5)
attr(at, "labels")
})
82
ps.options
ps.options
ポストスクリプトの引数に対する既定値の設定
Description
補助関数 ps.options は postscript への引数の幾つかに対して既定値を設定したり眺め
たりする(もし引数なしに呼び出されると)のに使うことが出来る.
ps.options は postscript の呼び出し前に呼ばれる必要があり,それが設定する既定値
は postscript に引数を提供することで上書きできる.
Usage
ps.options(..., reset = FALSE, override.check = FALSE)
setEPS(...)
setPS(...)
Arguments
...
引数 onefile, family, title, fonts, encoding, bg, fg, width, height, horizontal,
pointsize, paper, pagecentre, print.it, command, colormodel そ し て
fillOddEven を提供できる. onefile, horizontal と paper は setEPS
と setPS に対しては 無視される.
reset
論理値:既定値はそれらの ‘工場出荷’値にリセットすべきか?
override.check check.options に渡される論理値引数.例を見よ.
Details
もし reset = TRUE と ... の双方が提供されると,既定値は先ず ‘工場出荷’値にリセット
されそれから新しい値が適用される.
後方互換性のため引数 append は受け入れられるが警告と共に無視される.
setEPS と setPS はそれぞれドキュメント中に含める図 (width 又は height が提供されな
い限り既定サイズは 7 インチ四方) とポストスクリプトプリンターへのスプールに対し
て適当な既定値を設定するラッパである
Value
全ての直前の既定値の名前付きリスト.もし ... 又は reset = TRUE が提供されると,結
果は可視性フラグがオフにされる.
See Also
postscript, pdf.options
quartz
83
Examples
ps.options(bg = "pink")
utils::str(ps.options())
### ---- 引数のエラーチェック: ---ps.options(width = 0:12, onefile = 0, bg = pi)
# 'width' に対するチェックを上書き,しかし 'bg' はしない:
ps.options(width = 0:12, bg = pi, override.check = c(TRUE,FALSE))
utils::str(ps.options())
ps.options(reset = TRUE) # 工場出荷値に戻る
quartz
OS X の Quartz デバイス
Description
quartz は OS X システムに対するデバイスドライバを開く.これはスクリーン(既定)と
様々なグラフィックスファイル書式へのプロットをサポートする.
Usage
quartz(title, width, height, pointsize, family, antialias, type,
file = NULL, bg, canvas, dpi)
quartz.options(..., reset = FALSE)
quartz.save(file, type = "png", device = dev.cur(), dpi = 100, ...)
Arguments
title
Quartz ウィンドに対するタイトル(スクリーン出力にだけ適用される),
既定は "Quartz %d". C 風の整数に対する書式がデバイス番号で代入さ
れる (詳細は postscript への file 引数を見よ).
width
インチ単位のプロット領域の幅.既定値は 7.
height
インチ単位のプロット領域の高さ.既定値は 7.
pointsize
使われる既定のポイントサイズ.既定値は 12.
family
これはデバイスにより使用されるフォントのファミリ名である.既定
は "Arial".これは Font Book 中で示されているようなフォントの基本
名である.
antialias
アンチエイリアシングを使うかどうか.既定値は TRUE.
type
使用する出力タイプ.より多くの情報は ‘Details’ 節を見よ.既定値は
"native".
file
グラフィックスデバイスに対するオプションのターゲット. 既定の
NULL は必要な箇所で既定名を選択する.より多くの情報は‘詳細’節を
見よ.
bg
デバイスに対して使われる初期背景色. 既定値は "transparent".
"white" のような不透明色が普通 "png" と "tiff" の様な透明性をサポ
ートするスクリーンを使わないタイプでは必要とされる.
84
quartz
canvas
スクリーン利用のデバイスに対して使われるキャンバス色.既定値は
"white" で不透明色に強制される.
dpi
出力の解像度.スクリーン利用のディスプレイに対する既定値(NA_real_)は
主スクリーンの解像度で,さもなければ 72 dpi.‘詳細’節を見よ.
...
file 以外の任意の quartz への引数.
reset
論理値:既定値をそれらの既定の値にリセットすべきか?
device
コピーされるべきデバイス番号.
Details
quartz のただ一つを除く全ての引数の既定値は quartz.options で設定される:‘引数’節
は ‘工場出荷時’既定値を与える.
Quartz グラフィックスデバイスは様々な出力タイプをサポートする.スクリーンを使う
出力タイプは "" 又は "native" 又は "Cocoa" である.スクリーンを使わない出力タイプ
は file 引数を使い出力ファイルを生成する. type = "pdf" は PDF 出力を作る.以下
のビットマップ書式がサポートされているかもしれない (OS バージョンによる):"png",
"jpeg", "jpg", "jpeg2000", "tif", "tiff", "gif", "psd" (Adobe Photoshop), "bmp" (Windows
ビットマップ), "sgi" そして "pict".
file 引数はスクリーンを使わない描画に使われる. 実際のファイルはデバイスが閉
じられた時だけ作られる (つまり dev.off() を使う). ビットマップデバイスに対し
ては, ページ番号がもし C の整数書式が文字列に含まれていれば代入されるつま
り Rplot%03d.png. (結果は文字数長 PATH_MAX 未満でなければならず,もし超えれば打
ち切られるかもしれない. もし file 引数が与えられないと,既定は Rplots.pdf 又は
Rplot%03d.type である.チルド展開(path.expand を見よ)が行われる.
も し デ バ イ ス 独 立 な R グ ラ フ ィ ッ ク ス フ ォ ン ト フ ァ ミ リ が 指 定 さ れ る と(例 え ば
par(family =) を使って, Quartz デバイスは Quartz のフォントデータベース(quartzFonts
を見よ)を R のグラフィックスフォントファミリを Quartz 固有のフォントファミリ記述
に変換するのに使う.既定の変換は sans に対しては(MonoType TrueType バージョンの)
Helvetica, serif に対しては Times-Roman ,そして mono に対しては Courier である.
スクリーンを使うデバイスは半透明なキャンバスを用い起動される.新しいプロット
が一旦描かれると.キャンバスは先ず canvas 色で塗られ,それから現在の背景色で塗
られる (これは透明や半透明であって良い).スクリーンを使わないデバイスはキャン
バス色を持たないでの,可能ならば透明な背景で開始される (例えば type = "png" と
type = "tiff") – さもなければそれは Quartz コード中で一様な白キャンバスが仮定され
ているかのように見える. PNG と TIFF ファイルは暗いグレーの艶消しを使い保存され,
Preview を含むある種のビューアーで見ることが出来る.
title はスクリーンを使った出力に対して使うことが出来る.これは単一の文字列で,
オプションの整数プリントスタイルの書式を伴いデバイス番号として代入される.これ
はまたオプションで(書式無しで) PDF ファイルのタイトルを与えるのに使われる.
quartz() の呼び出しはスクリーンを使うデバイスに対しては .Device を "quartz" に設
定し,さもなければ "quartz_off_screen" に設定する.
選ばれたフォントファミリは使われる文字をカバーする必要がある:フォントに含まれ
ない文字は長方形で描かれる.非西ヨーロッパ言語に対しては既定の "Arial" 以外の何
かが恐らく必要になる —中国語に対する一つの選択は "MingLiU" である.
quartz.save はプロットを現在のスクリーンデバイスから quartz デバイスにコピーする
dev.copy2pdf の変更版である.既定では PNG ファイルにコピーされる.
quartzFonts
85
慣例
この節は “R Internals Manual” 中で設定されているグラフィックスデバイスに対する慣例
の移植を解説する.
• 既定のデバイスサイズは 7 インチ四方.
• フォントサイズはビッグポイント.
• 既定のフォントファミリは Arial.
• 線幅は 1/96 インチの倍数で最小値は R が設定する.
• 円半径は実数値で最小値は R が設定する.
• 色は sRGB と指定される.
Note
長い間既定のフォントファミリは OS X 10.4 の欠陥の応急措置として "Arial" に変更さ
れていたが "Helvetica" と文章化されていた.これは将来変更されるかもしれない.
かなり普通の Mac の問題は自分のシステムでの破損したり重複したりするフォントのせ
いでプロットにテキストが表示されないことである.例えば family = "serif" のような
別のフォントファミリに変更することでこれを確認出来るかもしれない. Font Book ア
プリケーション(Applications 中)を開き使っているフォントをチェックせよ.
See Also
quartzFonts, Devices.
R の標準のビットマップデバイスを使いこのデバイスのビットマップタイプにアクセス
する方法は png.
Examples
## Not run:
## 既定のカスタマイズにはこの様なものを自分の .Rprofile に置く
setHook(packageEvent("grDevices", "onLoad"),
function(...) grDevices::quartz.options(width = 8, height = 6,
pointsize = 10))
## End(Not run)
quartzFonts
Quartz のフォント
Description
これらの関数はデバイス独立な R グラフィックスフォント名の Quartz のフォント記述へ
の翻訳を処理する.
Usage
quartzFont(family)
quartzFonts(...)
86
recordGraphics
Arguments
family
フォントファミリのプレーン,ボールド,イタリックそしてボールド
イタリックバージョンに対するポストスクリプトフォント名を含む文
字列ベクトル.
...
ディスプレイへのマッピングを命名する文字列か定義する新しい(名前
付き)マッピング.
Details
quartz デバイスが既定のフォントで作られるが (quartz に対するドキュメントを見よ),
デバイスに書き込む時にフォントファミリのを指定することも可能である (例えば,grid
パッケージ中の gpar に対するドキュメントを見よ).
デバイスに送られるフォントファミリは単純な文字列名で, quartz フォントにより固有
なものにマップされる必要がある.マッピングのりストが維持されユーザが変更するこ
とが出来る.
quartzFonts 関数は既存マッピングのリストと新しいマッピングの定義に使うことが出
来る. quartzFont 関数は新しいマッピングの定義に使える.
既定のマッピングは三つのデバイス独立のフォントファミリ名に対して低供されている:
サンセリフフォントに対する "sans",セリフフォントに対する "serif" そしてモノスペ
ースフォントに対する "mono" である.
See Also
quartz
Examples
quartzFonts()
quartzFonts("mono")
## Not run:
## 東アジアロケールに対しては次のようなものを使うことが出来る
quartzFonts(sans = quartzFont(rep("AppleGothic", 4)),
serif = quartzFont(rep("AppleMyungjp", 4)))
## なぜなら既定のフォントは必要なグリフを持たないかもしれないから
## End(Not run)
recordGraphics
グラフィックス操作を記録する
Description
任意のコードをグラフィックスエンジンの表示リストに記録する.計算に依存するグラ
フィカルな出力を持つ計算をカプセル化するのに便利である.エキスパート使用だけを
意図している.
Usage
recordGraphics(expr, list, env)
recordGraphics
87
Arguments
expr
モード expression か call か未評価表現式のオブジェクト.
list
その中で expr が評価されるべき環境を定義するリスト.
env
R が envir 中に見つからないオブジェクトをどこで探すかを指定する
環境.
Details
expr 中のコードが list から構成された環境中で評価され, env がその環境の親環境と
される.
全ての三つの引数はグラフィックスエンジンの表示リストに保存されるので,デバイス
がサイズ変更されてもデバイス間でコピーされてもオリジナルの評価環境が再生成され
コードはグラフィカルな出力を再生成できる.
Value
expr の評価からの値.
警告
この関数は一般的使用を意図していない.この関数の不正確か不正な使用は意図しない
and/or 期待していない結果に導く可能性がある.
許容できる例はグラフィックスデバイスやグラフィックスシステムの設定の現在の状態
を問い合わせそれからグラフィックス関数を呼び出すことである.
不正な使用の例は大局的環境中での付値を実行する assign 関数の呼び出しである.
See Also
eval
Examples
require(graphics)
plot(1:10)
# この長方形はデバイスがサイズ変更されても1インチ幅のまま
recordGraphics(
{
rect(4, 2,
4 + diff(par("usr")[1:2])/par("pin")[1], 3)
},
list(),
getNamespace("graphics"))
88
recordPlot
recordPlot
プロットを記録し再生する
Description
現在のプロットを R 変数に保存し,それを再生する関数.
Usage
recordPlot(load=NULL, attach=NULL)
replayPlot(x, reloadPkgs=FALSE)
Arguments
load
もし NULL で無ければ,記録されたプロットの一部として保存されるパ
ッケージ名の文字列ベクトル.
attach
もし NULL で無ければ,記録されたプロットの一部として保存されるパ
ッケージ名の文字列ベクトル.
x
保存されたプロット.
reloadPkgs
記録されたプロットの一部として保存された任意のパッケージを再ロ
ード and/or 再付加するかどうかを指示する論理値.
Details
これらの関数は現在のグラフィックスデバイスの displaylist を保存し再生する.返され
るオブジェクトはクラス "recordedplot" で, replayPlot はこのクラスへの print メソ
ッドとして動作する.
返されるオブジェクトは対リストとして保管されるが, deparse と str のような R オブ
ジェクトを調べるための普通のメソッドは誤解に導きやすい.
Value
recordPlot はクラス "recordedplot" のオブジェクトを返す.
replayPlot は返り値を持たない.
警告
記録されたプロットの書式は R のバージョン間で変わるかもしれず,記録されたプロッ
トは R プロットの永久保存の書式としては使われるべきではない.
R 3.3.0 のように,例えば saveRDS と readRDS を使いプロットを別の R セッションで再生
することが(また)可能である.別の R バージョンからのプロットを再生することすら可
能であるが,しかしこれは警告を生み,エラーになるかもしれず,もっと悪いことにな
りかねない.
rgb
89
注意
記録されたプロットの再生は,ディスプレイリストが graphics や grid 以外の基本的でな
いパッケージからの呼び出しコードを含むかもしれず,もし recordGraphics の呼び出し
を含むと正しい結果を作り出さない(又は単に失敗する)かもしれない.
これの最も良く知られた例はパッケージ ggplot2 で描かれたプロットである.一つの解
決策は記録されたプロットを再生する前に関連パッケージをロードしておくことである.
recordPlot への load や attach 引数はこれを自動化するのに使うことが出来る – load 中
に名前のある任意のパッケージは loadNamespace を使い再ロードされ, attach 中に名前
のある任意のパッケージは replayPlot への呼び出し中で reloadPkgs が TRUE である限り
library を使い付加される.これは異なった R セッションで記録されたプロットを一つ
の R セッション中で再生しようと試みる時だけ問題になる.
See Also
displaylist は最初はスクリーンデバイスに対してはオンで,プリントデバイスに対しては
オフである.
rgb
赤緑青による色指定
Description
この関数は与えられた強度(0 と max の間)の赤緑青の三原色に対応する色を作る.色指定
は標準の sRGB 色空間 (IEC 標準 61966)を参照する.
アルファ透明度も指定できる(不透明度であり, 0 は完全な透明で max は不透明を意味す
る).もし alpha が指定されないと不透明な色が生成される.
names 引数は色名を提供するのに使うことが出来る.
これらの関数が返す値はグラフィックス関数の col= 指定や par 中で使うことが出来る.
Usage
rgb(red, green, blue, alpha, names = NULL, maxColorValue = 1)
Arguments
red, blue, green, alpha
[0, M ] 中の値の数値ベクトル,ここで M は maxColorValue.もしこれ
が 255 なら red, blue, green そして alpha の値は 0:255 中の整数に変換
され結果は最も効率的に計算される.
names
文字列ベクトル.結果のベクトルに対する名前.
maxColorValue
色の値範囲の最大値を与える数,上を見よ.
Details
色は引数 red として行列やデータフレームを渡し blue と green が欠損するように指定で
きる.この場合 red の最初の三つの列が red, green そして blue 値に取られる.
半透明な色(0 < alpha < 1)はある種のデバイスでだけサポートされる: pdf, windows,
quartz そして X11(type = "cairo") デバイスと関連するビットマップデバイス(jpeg,
90
rgb2hsv
png, bmp, tiff そして bitmap).それらはパッケージ Cairo, cairoDevice そして JavaGD の
ような幾つかのサードパーティー製のデバイス中でサポートされる.
これらのある種のデバイスだけが半透明色をサポートする.
他の殆どのグラフィックスデバイスは反透明色を完全に透明としてプリントし,普通最
初に遭遇した時警告が出る.
NA 値は red, blue, green 又は alpha のどれにも許されない.
Value
7 又は 9 文字の要素の文字列ベクトルで, "#" に16進数の赤緑青そしてオプションでア
ルファ値が続く (範囲 0 ... 255 に再スケールされる).オプションのアルファ値は 0 (完
全に透明)から 255 (不透明)に渡る.
R は ‘予め倍数化されたアルファ値’を使わない.
See Also
R の色を RGB ベクトルに変換するには col2rgb; rainbow, hsv, hcl, gray.
Examples
rgb(0, 1, 0)
rgb((0:15)/15, green = 0, blue = 0, names = paste("red", 0:15, sep = "."))
rgb(0, 0:12, 0, max = 255) # 整数入力
ramp <- colorRamp(c("red", "white"))
rgb( ramp(seq(0, 1, length = 5)), max = 255)
rgb2hsv
RGB 色を HSV 色に変換
Description
rgb2hsv は色を RGB 空間(赤/緑/青)から HSV 空間(色調/彩度/値)に変換する.
Usage
rgb2hsv(r, g = NULL, b = NULL, maxColorValue = 255)
Arguments
r
[0, M ] 中の‘赤色’の値のベクトル, (M =maxColorValue) 又は3行の rgb
行列.
g
‘緑色’の値,又は r が行列ならば NULL.
b
‘青色’の値,又は r が行列ならば NULL.
maxColorValue
RGB 色値の範囲の最大値を与える数.既定の 255 は col2rgb() 中に於
けるような典型的な範囲 0:255 の RGB コーディングに対応する.
rgb2hsv
91
Details
値(輝度)は色調の光量を与える.
色調は優越する波長を記述する.
彩度は色に混ぜられた色調の量である.
HSV 色空間は R では sRGB である RGB 色空間に相対的であり,暗黙のうちにガンマ補
正されている.
Value
各色に対する列を持つ行列.行列の三つの行は色調,彩度,値を指示し,従って名前
"h", "s" そして "v" を持つ.
Author(s)
R インタフェイスは Wolfram Fischer <[email protected]> による;
C コードは主に Nicholas Lewin-Koh <[email protected]>.
See Also
hsv, col2rgb, rgb.
Examples
## これらは(彩度,明度)は色調だけが異なる
(rc <- col2rgb(c("red", "yellow","green","cyan", "blue", "magenta")))
(hc <- rgb2hsv(rc))
6 * hc["h",] # 色調は等間隔
(rgb3 <- floor(256 * matrix(stats::runif(3*12), 3, 12)))
(hsv3 <- rgb2hsv(rgb3))
## 一貫性:
stopifnot(rgb3 == col2rgb(hsv(h = hsv3[1,], s = hsv3[2,], v = hsv3[3,])),
all.equal(hsv3, rgb2hsv(rgb3/255, maxColorValue = 1)))
## (簡略化された)純 R バージョン -- オリジナルは Wolfram Fischer -## 正確なアルゴリズムを示す:
rgb2hsvR <- function(rgb, gamma = 1, maxColorValue = 255)
{
if(!is.numeric(rgb)) stop("rgb matrix must be numeric")
d <- dim(rgb)
if(d[1] != 3) stop("rgb matrix must have 3 rows")
n <- d[2]
if(n == 0) return(cbind(c(h = 1, s = 1, v = 1))[,0])
rgb <- rgb/maxColorValue
if(gamma != 1) rgb <- rgb ^ (1/gamma)
## 最大値と最小値を得る
v <- apply( rgb, 2, max)
s <- apply( rgb, 2, min)
D <- v - s # range
## 未定義の値に対しては色調をゼロに設定(灰色は色調を持たない)
h <- numeric(n)
notgray <- ( s != v )
92
savePlot
## 青い色調
idx <- (v == rgb[3,] & notgray )
if (any (idx))
h[idx] <- 2/3 + 1/6 * (rgb[1,idx] - rgb[2,idx]) / D[idx]
## 緑の色調
idx <- (v == rgb[2,] & notgray )
if (any (idx))
h[idx] <- 1/3 + 1/6 * (rgb[3,idx] - rgb[1,idx]) / D[idx]
## 赤の色調
idx <- (v == rgb[1,] & notgray )
if (any (idx))
h[idx] <1/6 * (rgb[2,idx] - rgb[3,idx]) / D[idx]
## 負の赤に対する修正
idx <- (h < 0)
h[idx] <- 1+h[idx]
## 彩度設定
s[! notgray] <- 0;
s[notgray] <- 1 - s[notgray] / v[notgray]
}
rbind( h = h, s = s, v = v )
## 同値性を確認:
all.equal(rgb2hsv (rgb3),
rgb2hsvR(rgb3), tolerance = 1e-14) # TRUE
savePlot
Cairo X11 プロットをファイルに保存
Description
現在の cairo X11() デバイスのページをファイルに保存する.
Usage
savePlot(filename = paste("Rplot", type, sep = "."),
type = c("png", "jpeg", "tiff", "bmp"),
device = dev.cur())
Arguments
filename
そこへセーブするファイルの名前.
type
ファイルのタイプ: cairo のバージョン 1.0 に対しては "png" だけが受
け入れられる.
device
そこからセーブするデバイス.
trans3d
93
Details
cairo ベースの X11 デバイスだけがサポートされる.
これはイメージサーフィスをファイルにコピーすることで動作する. PNG に対しては
常にピクセル毎に 24 ビットの PNG ‘DirectClass’ ファイル, JPEG に対しては品質は 75%
で,TIFF に対しては圧縮はない.
バッファ機能を持つデバイスに対しては,これはバッファのイメージサーフィスをコピ
ーするので,もし dev.hold が呼び出されていても動作する.
現在プロットはキャンバス(既定の不透明白)に描画された後に保存されるので,既定の
bg = "transparent" に対しては実効的な背景色はキャンバスの色である.
Value
不可視の NULL.
Note
Windows 上の windows デバイスに対しては同名であるがより多くのタイプを持つ類似の
関数がある.
See Also
X11, dev.copy, dev.print
trans3d
鳥瞰図プロットの3次元から2次元への変換
Description
4x4 視点変換行列を用いた3次元の点の2次元への射影.
主に persp の様な鳥瞰図プロットに加えるために使う.
Usage
trans3d(x, y, z, pmat)
Arguments
x, y, z
同じ長さの数値ベクトルで, 3次元空間中の点を指示する.
pmat
4 × 4 視線変換行列, 3次元座標 (x, y, z) を2次元平面に一様な4次元座標
(x, y, z, t) を用いて射影するのに適している;そうした行列は persp()
により返される.
Value
二つの成分を持つリスト
x,y
See Also
persp
3次元入力 (x,y,z) の2次元座標への射影.
94
Type1Font
Examples
## help(persp) を見よ{'graphics' パッケージを付加した後}
##
-----------
Type1Font
Type1 のフォント
Description
これらの関数は R のグラフィックスフォントファミリの名前を Type 1 又は CID フォン
ト記述への翻訳を定義するのに使われ, postscript と pdf グラフィックスデバイスの双
方で使われる.
Usage
Type1Font(family, metrics, encoding = "default")
CIDFont(family, cmap, cmapEncoding, pdfresource = "")
Arguments
family
Type 1 又は CID-keyed フォントファミリに対して内部的に使われる名
前を与える文字列.これは各ファミリを一意的に特定する必要があり,
従って使用中のファミリを修正すると (postscriptFonts を見よ)ファミ
リ名を変更する必要がある.
metrics
フォントの afm (Adobe Font Metric) ファイルへのパスを与える四つか五
つの文字列ベクトル.
cmap
CID-keyed フォントに対する CMap ファイルの名前.
encoding
Type1Font に対しては, エンコーディングファイルの名前. 既定は
"default" で,これは Unix 風システムでは "ISOLatin1.enc" に,そし
て Windows では "WinAnsi.enc" になる.さもなければ, grDevices パッ
ケージの ‘enc’ ディレクトリ中のファイル名で,これはもしパスがパス
分離記号を含まなければ使われる.拡張子 ".enc" は省略できる.
cmapEncoding
名前付きの CMap ファイルと共に使われる文字エンコーディングの名
前:文字列はファイルに書き込まれるときにこのエンコーディングに
翻訳される.
pdfresource
PDF コードの塊; CID-keyed フォントを pdf に対して使う時だけ必要
になる;ユーザがこれを提供することは期待されていない.
Details
Type1Fonts に対しては,もし四つの ‘.afm’ ファイルが提供されると五番目は "Symbol.afm"
とされる.相対パスはディレクトリ ‘R_HOME/library/grDevices/afm’ に関して相対的
とされる.. 五番目の(シンボルフォントは AdobeSym エンコーディングで無ければならな
い.しかしながら最初の四つのフォント中のグリフは名前で参照され,‘.afm’ ファイル
内部で与えられたエンコーディングは使われない.
‘.afm’ は最後の拡張子 ‘.gz’ を持つ(又は無し)圧縮ファイルかもしれない: R とともに出
荷されるファイルはこの拡張子を持つ圧縮ファイルとしてインストールされる.
x11
95
CID-keyed フォント中のグリフは ID (番号)でアクセスされ名前ではない. CMap フ
ァイルはエンコードされた文字列(普通 MBCS で)を ID にマップし,従って cmap と
cmapEncoding 指定は一致しなければならない. CID フォントには真のボールドやイタリ
ックバージョンは無く (ボールド/イタリックは伝統的な東アジアの書体では滅多に使わ
れない),そして pdf デバイスに対しては四つのフォントフェイスは一致する.しかしな
がら,postscript デバイスに対しては,ボールドとイタリック(そしてボールドイタリッ
ク)体が模倣される.
CID-keyed フォントは東アジア言語のグリフに対してだけ使われることを意図しており,
それらは全ての等幅で同じバウンディングボックスを埋めるとして扱われる. (従って
plotmath はそうした文字と一緒に使えるが,間隔は西洋のグリフほどには制御されな
い.) CID-keyed フォントはラテン・アルファベット等の他の文字も含む:東アジアグリ
フでないものは東アジアグリフの幅の半分の等幅と見做される.これはしばしば起きる
が,比例スペーシング用にデザインされたラテングリフが使われることもある (そして
奇妙に見える). CID-keyed フォントは東アジアグリフにだけ使うことを強く勧める.
Value
A list of class クラス "Type1Font" 又は "CIDFont" のりスト.
See Also
postscript, pdf, postscriptFonts そして pdfFonts.
Examples
## これは "ComputerModernItalic" を二重化する.
CMitalic <- Type1Font("ComputerModern2",
c("CM_regular_10.afm", "CM_boldx_10.afm",
"cmti10.afm", "cmbxti10.afm",
"CM_symbol_10.afm"),
encoding = "TeXtext.enc")
## Not run:
## これは次のようにして使うことが出来る
postscript(family = CMitalic)
## または
postscriptFonts(CMitalic = CMitalic) # セッション中一回だけ
postscript(family = "CMitalic", encoding = "TeXtext.enc")
## End(Not run)
x11
X11 ウィンドシステムのグラフィックス
Description
X11 は X ウィンドシステム(version 11)に対するグラフィックスデバイスドライバを開始
する.これは機械/アカウントが X サーバーにアクセスできる時だけ行われる.
x11 は X11 の同義語と認識される.
この R 関数は二つのデバイスに対するラッパである,一つは Xlib (https://en.wikipedia.
org/wiki/Xlib) に基づき,もう一つは cairographics (http://www.cairographics.org) を
使う.
96
x11
Usage
X11(display = "", width, height, pointsize, gamma, bg, canvas,
fonts, family, xpos, ypos, title, type, antialias)
X11.options(..., reset = FALSE)
Arguments
display
その上にグラフィックスウィンドが現れるディスプレイ.既定ではユ
ーザの環境変数 DISPLAY 中の値が使われる.これはもし X11 デバイス
が既に別のディスプレイ上に開かれている時は無視される.
width, height
インチ単位のプロットウィンドの幅と高さ.もし NA ならリソースから
取られ,そしてそこで指定されなければ既定で 7 インチになる.‘リソ
ース’節も見よ.
pointsize
使用される既定のポイントサイズ.既定値は 12.
gamma
ガンマ修正の曖昧さ因子. R 中の色は sRGB である;もし自分のモニ
ターが sRGB と同等でなければ,このパラメータをいじくって RGB チ
ャンネルに追加のガンマ補正を適用することで色を改良することが出
来るかもしれない.既定では 1 (追加のガンマ補正は無い).
bg
初期背景色.既定では "transparent".
canvas
キャンバスの色で,背景色が透明の時だけ目に見える.不透明な色で
あるべき(そして任意のアルファ値は無視される).既定では "white".
fonts
type = "Xlib" の時だけ:重み,傾きそしてサイズがその中に代入され
る X11 フォントの記述文字列.二種類あり,最初はフォント 1 から 4
で,二番目はシンボルフォントであるフォント 5 用. ‘フォント’節を見
よ.
family
既定のファミリ:長さ1の文字列.これは第一に cairo ベースのデバイ
ス用を意図しているが, type = "Xlib" に対してはファミリ名を fonts
にマップするのに X11Fonts() データベースが使われる (そしてこの引
数がそれに優先する).
xpos, ypos
整数:ピクセル単位のウィンドの上左隅の初期位置.負の値は反対側,
つまり xpos = -100 は上右隅がスクリーンの右隅から 100 ピクセルの
位置にあることを主張する.もし NA (既定)なら,引き続くデバイスは
上左隅から 20 ピクセルずつ縦に連なる. ‘リソース’節も見よ.
title
文字列で最大 100 バイト.既定の "" では適当なタイトルが内部的に作
られる.整数に対する C スタイルの書式はデバイス番号が代入される
(よし詳細は postscript に対する file 引数を見よ).非アスキーなタイ
トルがどのように処理されるかは実装依存である.
type
文字列,"Xlib", "cairo", "nbcairo" 又は "dbcairo" のどれか.もしシ
ステムが cairographics のサポート無しにコンパイルされていれば最初
だけが利用できる.既定は OS X を除き利用できれば "cairo" で,さも
なければ "Xlib".
antialias
cairo タイプに対し,使用されるアンチエイリアシング (もしあれば)の
タイプ. c("default", "none", "gray", "subpixel") の一つ.
reset
論理値:既定値をそれらの既定値にリセットすべきか?
...
X11 への任意の引数,プラス colortype と maxcubesize (‘色描画’節を見
よ).
x11
97
Details
X11 の引数の全てに対する既定値は X11.options で設定される: ‘引数’節は‘工場出荷
時’既定値を与える.
初期サイズと位置はヒントに過ぎず,ウィンドマネージャにより決定されないかもしれ
ない.またある種のシステム(特にラップトップ)は物理的なスクリーンとは異なったサ
イズのスクリーンを持つように見えるように設定される.
オプション type は二つの別個のデバイス間を選択する: R はどちらのサポートも無
し, type = "Xlib" 又は双方で構築できる.もし双方が利用可能なら,タイプ "cairo",
"nbcairo" そして "dbcairo" は以下を提供する
• テキストと線のアンチエイリアシング.
• 半透明色.
• 可変サイズテキスト,4.5 pt の様なテキストを含む.
• UTF-8 に対する完全なサポート.従って適当なフォントを持つシステムでは多くの
言語で単一の図にプロットできる (そしてこれは非 UTF-8 ロケールでも動作する).
出力はロケール独立であるべきである.
cairo デバイスの三つの変種がある. type = "nbcairo" はバッファリングをしない.
type = "cairo" はある程度のバッファリングを行い, dev.hold と dev.flush をサポー
トする. type = "dbcairo" は出力をバッファしスクリーンを約 100ms 毎に更新する(既
定で).リフレッシュ間隔は (秒単位で)例えば options(X11updates = 0.25) で設定でき
る:この値はデバイスが開かれる時参照される.更新は 50ms (最大)毎だけに参照され,
思いグラフィックス計算の間は 500ms 毎にだけ参照される.
どのバージョンが最速かは X11 接続とプロットのタイプに依存する.大規模な記録装置
が使われていない限り,恐らくバッファ付きタイプを使いたいであろう (これは例えば
OS X ディスプレイでは常に使われる).さもなければウィンドが呈示される時の再描画
が遅くなるであろう.遅いコネクションでは type = "dbcairo" が恐らく最良の結果を与
える.
Pango 無しの OS X (例えば CRAN 配布物)でのフォント選択の既知の問題から, type = "cairo"
はそこでは既定ではない.これらの問題はボールド体とイタリック体の混ぜあわせ (応
急措置済み),不正確なグリフの選択,そして醜い又は欠損したグリフである.
X11 サーバーを使う全てのデバイス (png の様なビットマップデバイスの type = "Xlib"
バージョンを含む)は内部構造を共有し,これはそれらが同じ display と外観を持たなけ
ればならないことを意味する.もしディスプレイを変更したければ,先ず全てのそうし
たデバイスを閉じる.
提示されるカーソルはデバイスの状態を指示する.もし停止していればカーソルは矢印
である: locator を使用中はそれは十字線で,そしてプロットが進行中 (そしてこれは検
出可能)はそれは時計印カーソルである. (表示される正確なカーソルは使用中のウィン
ドマネージャに依存する.)
X11 フォント
この節は type = "Xlib" にだけ適用される.
デバイスに対する初期/既定のフォントファミリは fonts 引数で指定できるが,もしデ
バイス独立な R グラフィックスフォントファミリが (例えば par(family =) によりグラ
フィックスパッケージ中で 指定されると, X11 デバイスは X11 フォントのデータベー
ス (X11Fonts を見よ)を R グラフィックスフォントファミリを X11 固有のフォントファ
ミリ記述に変換するのに使う.もし family が引数として提供されると, X11 のフォン
トデータベースがそれを変換するのに使われるが,さもなければ引数 fonts (既定値は
X11.options で与えられる)が使われる.
98
x11
X11 はフォントをパターンマッチングにより選択し,そして間違ったエンコーディング
中のフォントを選んだり自分の言語に対するグリフを含まないすることが十分あり得る
(特に iso10646-1 フォントでは普通である).
fonts 引数は二つの等その文字列ベクトルであり,そして最初の要素は非西洋フォント
を成功裡に使う際は不可欠である.有用と証明されている設定は次を含む
CJK フォントに対しては "-*-mincho-%s-%s-*-*-%d-*-*-*-*-*-*-*" でロシア語に対して
は "-cronyx-helvetica-%s-%s-*-*-%d-*-*-*-*-*-*-*".
UTF-8 ロケールに対しては XLC_LOCALE データベースが文字エンコーディング間のマッピ
ングを提供し,そして自分のロケールに対する項目を付け加える必要があるかもしれな
い (例えば Fedora Core 3 は ru_RU.utf8 に対するものを欠いている).
Cairo フォント
cairographics に基づくデバイスは "Helvetica" のようなフォントファミリ名と共に直接
動作する.これは最初 family 引数で,それから par や gpar で選択することが出来る.
三つのデバイス独立なフォントファミリに対するマッピングがある, sans-serif フォント
に対する font"sans" ("Helvetica" に),serif フォントに対する "serif" ("Times" へ),そ
して monospace フォントに対しては"mono" ("Courier" へ).
フォントの選択は Pango (普通 fontconfig 経由で),又は fontconfig (OS X と恐らく他で
も)により処理される.結果は R が動いているシステム上にインストールされているフォ
ントに依存する – 環境変数 FC_DEBUG を 1 に設定すると普通選択の過程のあるトレースを
許す.
これは普通 Type 1 や TrueType 書式の高品質の可変サイズのフォントがインストールさ
れている時に最も良く動作する:そうしたフォントをどこで入手しインストールする
かについては現在最良の描画(カーニングを含む)は TrueType フォントで得られる:自
分のシステムでそれらを優先する設定の仕方については http://www.freedesktop.org/
software/fontconfig/fontconfig-user.html を見よ.既定のファミリ ("Helvetica") は
カーニングを恐らく使わない:カーニングを使う別のものはもしインストールして
いれば "Arial", "DejaVu Sans" そして "Liberation Sans" (そして恐らく "FreeSans")
である. セリフ付きフォントが好みなら "Times New Roman", "DejaVu Serif" そして
"Liberation Serif" を試してみよ. LaTeX テキストとマッチさせるには "CM Roman" の
様なものを使う.
シ ン ボ ル の 不 正 確 な 描 画 を 伴 う 問 題 (例 え ば quote(pi) と expression(10^degree)))
が Wine シンボルフォントをインストールした Linux システムで観察されてきた –
fontconfig はするとこれを優先しそしてそのエンコーディングを誤って解釈する.次の
行を ‘~/.fonts.conf’ や ‘/etc/fonts/local.conf’ に付け加えれば URW Type 1 シンボル
フォントを優先することでこの問題を克服する.
<fontconfig>
<match target="pattern">
<test name="family"><string>Symbol</string></test>
<edit name="family" mode="prepend" binding="same">
<string>Standard Symbols L</string>
</edit>
</match>
</fontconfig>
これをテストするにはコマンドラインで fc-match Symbol を実行する. もしこれが
symbol.ttf を示せばそれは Wine シンボルフォントかもしれない – それが名前 ‘wine’ を
持つディレクトリから見つかるかどうかを見るには locate symbol.ttf を使う.
x11
99
リソース
X11 の標準的リソース geometry はウィンドの位置 and/or サイズを指定するのに使うこと
が出来るが,引数として指定される値や X11.options 中の非 NA 既定設定で上書きされ
る.求められるクラスは R_x11 である.リソースは幅と高さをインチ単位でなくピクセ
ル単位で指定することを注意する. ‘man X’ に対する例 (又は http://www.xfree86.org/
current/X.7.html) を見よ. ‘~/.Xresources’ 中の一行の例は次のようになるかもしれな
い
R_x11*geometry: 900x900-0+0
これはスクリーンの上右隅の 900 x 900 ピクセルウィンドを指定する.
色描画
X11 は幾つかの‘視覚’タイプをサポートし, 現在ではほとんどすべてのシステムは
‘truecolor’ をサポートし,X11 は既定でこれを使う.これはサポートされる深さ (普通色
毎に 8 ビット)までの任意の RGB 色の直接の指定を使う.他の視覚タイプはより少ない
色をサポートするパレットを使い,
グレイや黒/白だけを使う.パレットは全ての X11 クライエント間で共有されるので, R
が使う色数を制限することが必要かもしれない.
type = "Xlib" に対する既定は X11 サーバーに対する視覚に対して最良の色モデル
を使うことである:最近ではこれは常に ‘truecolor’ である. これは X11.options への
colortype 引数で上書きすることが出来る.
注意: 全ての X11 と type = "Xlib" では bmp, jpeg, png そして tiff デバイスは最
初にデバイスが開かれた際に設定される colortype を共有する. colortype を変更
するには 全ての開かれたそうしたデバイスを閉じる必要があり, そしてそれから
X11.options(colortype =) を使う.
色タイプは "true", "pseudo", "gray" そして "mono" (白黒のみ)の順で試みられる. 値
"pseudo" と "pseudo.cube" は擬似色の見かけに対する二つの方策を提供する.最初の方
策はディスプレイの色のリソースが尽きるまで(プロットが失敗した時) 要求に応じた色
の割り当てを提供する.二つ目の方策は(もし可能なら)標準の色キューブを割り当て,
要求された色がキューブ中の最も近い色で近似される.
colortype が "pseudo.cube" か "gray" に等しければ次々とより小さなパレットが完全な
割り当てが達成されるまで試みられる.もし最少の試みの割り当てが失敗すればデバイ
スは "mono" に戻る."gray" に対しては捜索は深さが 8 より大きなディスプレイに対して
256 のグレイから始まり,さもなければ利用可能な色の半分から始まる. "pseudo.cube"
に対しては最大のキューブサイズは X11.options(maxcolorsize =) で設定され,既定は
256 である.その設定では試みられる最大のキューブは RGB に対しては 4 水準で,パレ
ット中で 64 色を使う.
cairographics に基づくデバイスは ‘TrueColor’ 外観でのみ動作する(又は正確に動作する)こ
とが最もありそうであるが,原則としてこれは cairo のインストールの仕方に依存する:
もし他の任意の外観に出会うと警告が与えられる.
type = "Xlib" は ‘TrueColor’, ‘PseudoColor’, ‘GrayScale’, StaticGray そして MonoChrome 外
観をサポートする:外観 ‘StaticColor’ と ‘DirectColor’ は白黒でのみ処理される.
アンチエイリアシング
アンチエイリアシングは cairographics に基づくデバイスに対してだけサポートされてお
り,グラフィックスとフォントの双方に適用される.これは一般に線とテキストには好
ましいが,例えば image プロット等の塗りつぶしには好ましくない効果をもたらすかも
しれず,塗りつぶしには決して使われない.
100
X11Fonts
antialias = "default" は原則としてプラットフォーム独立であるが,しばしば
antialias = "gray" と同値であるように見える.
慣例
この節は “R Internals Manual” で設定されているグラフィックスデバイスに対する慣例の
実装を説明する.
• 既定のデバイスサイズは 7 インチ四方.
• フォントサイズはビッグポイント.
• 既定フォントファミリは Helvetica.
• 線幅の単位は 1/96 インチで, type = "Xlib" に対する最少ピクセルで,さもなけれ
ば 0.01.
• type = "Xlib" に対しては円半径はピクセル単位で,最小値は 1.
• 色は X11 サーバーにより解釈され, sRGB と同等であることが仮定される.
See Also
Devices, X11Fonts, savePlot.
Examples
## Not run:
## 既定値をカスタマイズするには次のようなものを自分の .Rprofile に置く
setHook(packageEvent("grDevices", "onLoad"),
function(...) grDevices::X11.options(width = 8, height = 6, xpos = 0,
pointsize = 10))
## End(Not run)
X11Fonts
X11 のフォント
Description
これらの関数はデバイス独立な R のグラフィックスフォント名の X11 のフォント記述へ
の翻訳を処理する.
Usage
X11Font(font)
X11Fonts(...)
Arguments
font
X11 のフォント記述を含む文字列.
...
ディスプレイへのマッピングの名前を与える文字列か,又は新しい(名
前付き)マッピングを定義する文字列.
xfig
101
Details
これらの関数は type = "Xlib" である X11 デバイスにだけ適用される – X11(type = "cairo")
はフォント選択の異なった機構を使う.
そうしたデバイスは既定のフォントで作られるが (X11 に対するドキュメントを見よ),
デバイスへの書き込みの際にフォントファミリを指定することも可能である (例えば
par 中の "family" に対するドキュメントを,そして grid パッケージ中の gpar に対する
"fontfamily" のドキュメントを見よ).
デバイスに送られるフォントファミリは単純な文字列で, X11 フォントに固有のものに
マップされていなければならない.マッピングのりストが維持されておりユーザが変更
することが出来る.
X11Fonts 関数は既存のマッピングのリストそして新しいマッピングの定義に使うことが
出来る. X11Font 関数は新しいマッピングを作るのに使うことが出来る.
既定のマッピングは三つのデバイス独立なフォントファミリ名に対して低供されてい
る: sans-serif フォントに対しては "sans", serif フォントに対しては "serif" そして
monospace フォントに対しては "mono".追加のマッピング "Helvetica" (デバイスの既
定), "Times", "CyrHelvetica", "CyrTimes" (キリル文字を持つフォントのバージョン,少
なくとも Linux 上), "Arial" (OS X と Solaris を含むある種のプラットフォーム上),そし
て "Mincho" (CJK フォント) が提供されている.
See Also
X11
Examples
X11Fonts()
X11Fonts("mono")
utopia <- X11Font("-*-utopia-*-*-*-*-*-*-*-*-*-*-*-*")
X11Fonts(utopia = utopia)
xfig
XFig グラフィックスデバイス
Description
xfig は XFig (バージョン 3.2)グラフィックスを生成するグラフィックスデバイスを開始
する.
補助関数 ps.options は xfig と postscript に対する既定値を設定したり眺めたり(もし
引数無しで呼びだされた時) するのに使える.
Usage
xfig(file = if(onefile) "Rplots.fig" else "Rplot%03d.fig",
onefile = FALSE, encoding = "none",
paper = "default", horizontal = TRUE,
width = 0, height = 0, family = "Helvetica",
pointsize = 12, bg = "transparent", fg = "black",
pagecentre = TRUE, defaultfont = FALSE, textspecial = FALSE)
102
xfig
Arguments
file
ファイル名を与える文字列. onefile = FALSE と共に使うには "Rplot%03d.fig"
(この場合の既定値)のような C の整数書式を使う. (更なる詳細は
postscript を見よ.)
onefile
論理値:もし真なら複数の図を一つのファイルに許す.もし偽ならフ
ァイル毎に一つだけのページを仮定しページ番号を含むファイル番号
を生成する.
encoding
Tテキスト文字を書くエンコーディング.既定では再エンコーディング
しない.これは iconv が認識する任意のエンコーディングで良い:西
欧の UTF-8 ロケールでは恐らく latin1 の様な8ビットエンコーディン
グ,東アジアのロケールでは EUC エンコーディングが必要になるであ
ろう.もし再エンコーディングが失敗すると,文字列は警告と共に現
在のエンコーディングで書かれる.
paper
用紙領域のサイズ.選択肢は "A4", "Letter" そして "Legal" (そしてこ
れらは小文字でも良い).更に既定値の "default" も良い.もしこれが
選ばれると用紙サイズはもいsそれが設定され空でなければオプショ
ン "papersize" から取られ,さもなければ "A4" とされる.
horizontal
プリントイメージの方向,論理値.既定は真でランドスケープ.
width, height
インチ単位のグラフィックス領域の幅と高さ.既定値は各余白に0.5イ
ンチを取った全ページを使う. (更なる詳細は postscript を見よ.)
family
使用されるフォントファミリ. "AvantGarde", "Bookman", "Courier",
"Helvetica" (既定値), "Helvetica-Narrow", "NewCenturySchoolbook", "Palatino"
又は "Times" のどれかでなければならない.任意の他の値は警告と共
に "Helvetica" に置き換えられる.
pointsize
使用される既定ポイントサイズ.
bg
使用される初期背景色.
fg
使用される初期前景色.
pagecentre
論理値:デバイス領域はページの中央に置かれるべきか?
defaultfont
論理値:デバイスは xfig の既定フォントを使うべきか?
textspecial
論理値:デバイスは全てのテキスト要素に対し textspecial フラグをたて
るべきか? これは xfig 図から pstex を生成する際に有用である.
Details
xfig は一つのファイルに複数のプロットを生成できるが, XFig 書式はそれらを眺める
時どのように分離するのかを述べていない.従って onefile = FALSE が既定値である.
file 引数は sprintf によって使われるような C の整数書式として解釈され,整数引数は
ページ番号になる.既定値はファイル ‘Rplot001.fig’, . . . , ‘Rplot999.fig’, ‘Rplot1000.fig’,
. . . を与える.
par(lwd =) で制御される線幅は 5/6*1/72 インチの倍数である.1未満の倍数も許される.
cex = 1 の pch = "." は側面が 1/72 インチの正方形に対応する.
Windows のユーザは WinFIG (http://www.schmidt-web-berlin.de/WinFIG.htm, shareware),
又は Cygwin の下で XFig を使うことが出来る.
xy.coords
103
慣例
この節は “R Internals Manual” 内で設定されているグラフィックスデバイスに対する慣例
の実装を説明している.
• 既定サイズは全ての側面に 0.25 インチの余白を持つペーパーサイズ.
• フォントのサイズはビッグポイント.
• 既定のフォントファミリは Helvetica.
• 線幅は整数で,5/432 インチの倍数.
• 円半径は 1/1200 インチの倍数.
• 色は表示/プリントアプリケーションにより解釈される.
Note
幾つかの線テキスチャ(0 <= lty < 4)だけが使われる.いつかはこれは部分的に救済さ
れるかもしれないが, XFig ファイル書式は R モデルの様に一般的な線テキスチャを認
めない.未実装の線テキスチャはダッシュと二重ドットで表示される.
ファイル毎に 512 色(プラス白と黒)の制限がある.
Author(s)
Brian Ripley. defaultFont と textSpecial に対するサポートは Sebastian Fischmeister の貢
献.
See Also
Devices, postscript, ps.options.
xy.coords
プロット構造の取り出し
Description
xy.coords はプロット用の x と y 座標を得るために多くの関数により使われる.関連す
る全ての R 関数を縦断するこの共通機構の使用は一貫性の目安を生み出す.
Usage
xy.coords(x, y = NULL, xlab = NULL, ylab = NULL, log = NULL,
recycle = FALSE)
Arguments
x, y
点の集合の x と y 座標.もしくは単一の引数 x を与えることが出来る.
xlab, ylab
取り出される x と y 変数.
log
文字列,plot に対するような "x", "y" 又は双方. NA に負の値を設定し
警告を与える.
recycle
論理値;もし TRUE ならもし長さが異なれば x か y の短い方はリサイク
ル(rep)される.
104
xyTable
Details
引数 x と y は二変量プロット (又は他の二変量手法)に相応しいように解釈する努力がさ
れる.
公式: 形式 yvar ~ xvar.xvar と yvar は x と y 変数として使われる..
リスト: 成分 x と y を含む,これらはプロット座標として使われる.
時系列: x 値は time(x),y 値は時系列とされる.
二つもしくはそれ以上の列を持つ行列又はデータフレーム: 最初は x 値を二番目は y 値
を含むと仮定される.これは又 x が名前が "x" と "y" である列を持つ時も正しいこ
とを 注意する;これらの名前はここでは無関係である.
他の任意のケースでは,x 引数はベクトルに強制変換され,そして y 成分として返さ
れる,ここで結果の x は単に添字ベクトル 1:n になる.この場合,結果の xlab 成分は
"Index" に設定される.
もし x (上のような変換後)がクラス "POSIXt" を継承すればクラス "POSIXct" に強制変換
される.
Value
次の成分を持つリスト
x
数値 (つまり,横座標の "double") ベクトル.
y
x と同じ長さの数値ベクトル.
xlab
character(1) 又は NULL, x の‘ラベル’.
ylab
character(1) 又は NULL, y の‘ラベル’.
See Also
plot.default, lines, points そして lowess はこの機構を使う関数の例である.
Examples
xy.coords(stats::fft(c(1:9)), NULL)
with(cars, xy.coords(dist ~ speed, NULL)$xlab ) # = "speed"
xy.coords(1:3, 1:2, recycle = TRUE)
xy.coords(-2:10, NULL, log = "y")
##> warning: 3 y values <= 0 omitted ..
xyTable
点の重複度
Description
点 (x,y) を与えて,それらの重複度を決定する – 等号はある(大雑把な)雑音を除いている.
これは2次元の特殊な仕分けであることを注意.
Usage
xyTable(x, y = NULL, digits)
xyz.coords
105
Arguments
x, y
同じ長さの数値ベクトル;又は (x, y) 引数の xy.coords(x, y) で許され
るような組み合わせ.
digits
座標の一致性を決定するのに使われる有効精度を指定する整数.これ
らはそれらを signif(*, digits) で丸めた後に比較される.
Value
同じ長さの三つの成分を持つリスト,
x
x 座標,丸められソートされている.
y
y 座標,丸められ(そして x に合わせてソートされている).
number
重複度(正整数);つまり number[i] は (x[i], y[i]) の重複度.
See Also
sunflowerplot は xyTable() を典型的に使う; signif.
Examples
xyTable(iris[, 3:4], digits = 6)
## 無相間の正規変数を離散化:
require(stats)
xy <- data.frame(x = round(sort(rnorm(100))), y = rnorm(100))
xyTable(xy, digits = 1)
xyz.coords
三次元のプロット構造を取り出す
Description
三次元(3D)プロット用の一貫性のある x, y そして z 座標とラベルを得るユーティリテ
ィ.
Usage
xyz.coords(x, y = NULL, z = NULL,
xlab = NULL, ylab = NULL, zlab = NULL,
log = NULL, recycle = FALSE)
Arguments
x, y, z
点集合の x, y そして z 座標. y と z は共に NULL のままで良い.この場
合 x はプロットに相応しい仕方で解釈することが試みられる.
もし引数が公式 zvar ~ xvar + yvar ならば, xvar, yvar そして zvar が
x, y そして z 変数とされる;もし引数が成分 x, y そして z を含めば,こ
れらはプロット座標を定義すると仮定される;もし引数が三列の行列
又は data.frame ならば,最初が x 値,二番目が y 値,そして三番目が
z 値とされる – x が持つかもしれない列名とは無関係である.
106
xyz.coords
別の方法として二つの x と y を与えることが出来る (z = NULL とする).
一つは実数で他方が複素数;他の任意のケースでは,引数はベクトル
に強制変換され値は他の添字に対してプロットされる.
xlab, ylab, zlab
取り出される x, y そして z 変数のラベル.
log
文字列,"x", "y", "z" 又は組み合わせ. NA に負の値を設定し警告を与
える.
recycle
論理値;もし TRUE なら,もし長さが異なれば x, y 又は z のより短いも
のはリサイクルされる(rep).
Value
次の成分を持つリスト
x
横座標値の数値(つまり double)ベクトル.
y
x と同じ長さの数値ベクトル.
z
x と同じ長さの数値ベクトル.
xlab
character(1) 又は NULL,x の軸ラベル.
ylab
character(1) 又は NULL,y の軸ラベル.
zlab
character(1) 又は NULL,z の軸ラベル.
Author(s)
Uwe Ligges と Martin Maechler
See Also
二次元には xy.coords.
Examples
xyz.coords(data.frame(10*1:9, -4), y = NULL, z = NULL)
xyz.coords(1:5, stats::fft(1:5), z = NULL, xlab = "X", ylab = "Y")
y <- 2 * (x2 <- 10 + (x1 <- 1:10))
xyz.coords(y ~ x1 + x2, y = NULL, z = NULL)
xyz.coords(data.frame(x = -1:9, y = 2:12, z = 3:13), y = NULL, z = NULL,
log = "xy")
##> Warning message: 2 x values <= 0 omitted ...
Index
boxplot.stats, 8
cm, 14
col2rgb, 14
colors, 18
contourLines, 19
densCols, 22
dev.capabilities, 25
dev.capture, 26
dev.flush, 26
dev.size, 28
devAskNewPage, 33
extendrange, 36
hcl, 42
hsv, 47
n2mfrow, 50
Palettes, 53
pretty.Date, 81
rgb2hsv, 90
trans3d, 93
xy.coords, 103
xyTable, 104
xyz.coords, 105
∗Topic graphs
chull, 13
∗Topic iplot
dev, 23
getGraphicsEvent, 37
recordPlot, 88
∗Topic package
grDevices-package, 2
∗Topic programming
check.options, 12
∗Topic sysdata
colors, 18
palette, 52
∗Topic univar
nclass, 51
∗Topic utilities
as.graphicsAnnot, 4
check.options, 12
dev2bitmap, 31
n2mfrow, 50
savePlot, 92
∗Topic aplot
Hershey, 44
Japanese, 48
plotmath, 62
∗Topic color
col2rgb, 14
colorRamp, 16
colors, 18
convertColor, 20
gray, 39
gray.colors, 40
hcl, 42
hsv, 47
make.rgb, 49
palette, 52
Palettes, 53
rgb, 89
rgb2hsv, 90
∗Topic device
cairo, 9
dev, 23
dev.interactive, 27
dev2, 29
Devices, 34
embedFonts, 35
grDevices-package, 2
pdf, 55
pdf.options, 60
pictex, 61
png, 67
postscript, 71
postscriptFonts, 78
ps.options, 82
quartz, 83
quartzFonts, 85
recordGraphics, 86
Type1Font, 94
x11, 95
X11Fonts, 100
xfig, 101
∗Topic dplot
as.raster, 5
axisTicks, 6
107
108
.Device, 27, 84
.axisPars (axisTicks), 6
.ps.prolog (postscript), 71
adjustcolor, 3, 53
approxfun, 17
as.character, 4
as.graphicsAnnot, 4
as.raster, 5
assign, 12
atop (plotmath), 62
axis, 7, 63, 66
axisTicks, 6
axTicks, 7
bar (plotmath), 62
barplot.default, 41
base, 3
bgroup (plotmath), 62
bitmap, 34, 71
bitmap (dev2bitmap), 31
bkde2D, 22, 23
blues9 (densCols), 22
bmp, 34, 99
bmp (png), 67
bold (plotmath), 62
bolditalic (plotmath), 62
boxplot, 9
boxplot.stats, 8
bquote, 66
bxp, 9
cairo, 9
cairo_pdf, 29, 34, 59
cairo_pdf (cairo), 9
cairo_ps, 77
cairo_ps (cairo), 9
capabilities, 11, 34, 69, 71
check.options, 12, 77, 82
chull, 13
CIDFont, 74, 78, 80
CIDFont (Type1Font), 94
cm, 14
cm.colors (Palettes), 53
col2rgb, 3, 14, 16, 18, 21, 53, 54, 90, 91
colorConverter, 20
colorConverter (make.rgb), 49
colorRamp, 16, 53
colorRampPalette (colorRamp), 16
colors, 15, 18, 21, 53, 54
colorspaces (convertColor), 20
colours (colors), 18
contour, 20, 44, 47
INDEX
contourLines, 19
convertColor, 3, 15, 20, 49, 50
data.frame, 105
demo, 47, 48
densCols, 22
deparse, 88
dev, 23
dev.capabilities, 25
dev.capture, 26
dev.control, 33
dev.control (dev2), 29
dev.copy, 53, 93
dev.copy (dev2), 29
dev.copy2eps (dev2), 29
dev.copy2pdf, 84
dev.copy2pdf (dev2), 29
dev.cur, 30, 34
dev.flush, 26
dev.hold, 93, 97
dev.hold (dev.flush), 26
dev.interactive, 27, 34
dev.new, 28
dev.print, 11, 34, 71, 93
dev.print (dev2), 29
dev.size, 28
dev2, 29
dev2bitmap, 31, 34
devAskNewPage, 33
device (Devices), 34
deviceIsInteractive (dev.interactive),
27
Devices, 11, 24, 28, 34, 36, 59, 62, 71, 77, 85,
100, 103
displaystyle (plotmath), 62
dot (plotmath), 62
double, 106
dpih, 52
embedFonts, 35, 57, 59, 74, 79
eval, 87
expression, 87
extendrange, 36
extSoftVersion, 42
fivenum, 9
frac (plotmath), 62
get, 12
getGraphicsEvent, 25, 37
getGraphicsEventEnv (getGraphicsEvent),
37
getOption, 23, 24, 27, 68
INDEX
gpar, 65, 73, 74, 78, 98, 101
graphics.off, 34
graphics.off (dev), 23
gray, 18, 39, 41, 47, 53, 54, 90
gray.colors, 40
grDevices (grDevices-package), 2
grDevices-package, 2
grey, 16
grey (gray), 39
grey.colors (gray.colors), 40
grid, 3
grid.cap, 25
grid.newpage, 33
grid.raster, 25
group (plotmath), 62
grSoftVersion, 41
hat (plotmath), 62
hcl, 18, 40, 42, 47, 54, 90
heat.colors, 17, 18
heat.colors (Palettes), 53
Hershey, 44, 48
hist, 52
hsv, 18, 40, 42, 43, 47, 53, 54, 90, 91
iconv, 102
identify, 25
image, 11, 33, 34, 99
inf (plotmath), 62
integral (plotmath), 62
IQR, 51
is.na, 5
is.object, 4
is.raster (as.raster), 5
italic (plotmath), 62
Japanese, 47, 48
jpeg, 33, 34
jpeg (png), 67
layout, 24, 51
legend, 63
library, 89
lines, 104
loadNamespace, 89
locator, 25
lowess, 104
mad, 51
make.rgb, 20, 21, 49
mtext, 63, 66
n2mfrow, 50
NA, 8, 15, 103, 106
109
names, 24
NaN, 8
nclass, 51
NULL, 90
options, 20, 30, 33, 34, 97
over (plotmath), 62
palette, 15, 18, 41, 52, 54
Palettes, 53
par, 7, 28, 40, 44, 47, 50–52, 65, 73, 74, 78,
89, 98, 101
path.expand, 55, 72, 84
pdf, 10, 11, 24, 29–34, 55, 60, 62, 65, 78, 80,
89, 94, 95
pdf.options, 12, 34, 56, 59, 60, 82
pdfFonts, 56, 59, 95
pdfFonts (postscriptFonts), 78
persp, 93
phantom (plotmath), 62
pictex, 34, 61
plain (plotmath), 62
plot, 103
plot.default, 104
plot.new, 33
plotmath, 4, 44, 61, 62, 95
png, 29, 33, 34, 67, 85, 97
points, 65, 66, 104
polygon, 13, 56, 73
postscript, 10, 11, 24, 29–34, 55–57, 59, 62,
65, 68, 71, 78–80, 82, 83, 94–96,
102, 103
postscriptFonts, 36, 73, 74, 77, 78, 94, 95
pretty, 36, 81
pretty.Date, 81
pretty.POSIXt (pretty.Date), 81
print.recordedplot (recordPlot), 88
ps.options, 12, 34, 60, 73, 77, 82, 103
quantile, 8
quartz, 34, 59, 69, 70, 83, 86
quartz.options, 34
quartzFont (quartzFonts), 85
quartzFonts, 85, 85
quote, 66
R_HOME, 19, 94
rainbow, 18, 40, 41, 47, 53, 90
rainbow (Palettes), 53
range, 36
rasterImage, 25
readRDS, 88
recordGraphics, 86, 89
110
recordPlot, 88
rep, 103, 106
replayPlot, 53
replayPlot (recordPlot), 88
rgb, 3, 5, 15, 17, 18, 40, 42, 43, 47, 54, 89, 91
rgb2hsv, 47, 90
ring (plotmath), 62
savePlot, 33, 92, 100
saveRDS, 88
scriptscriptstyle (plotmath), 62
scriptstyle (plotmath), 62
search, 12
setEPS, 73
setEPS (ps.options), 82
setGraphicsEventEnv (getGraphicsEvent),
37
setGraphicsEventHandlers
(getGraphicsEvent), 37
setPS (ps.options), 82
shortPathName, 32
signif, 105
smoothScatter, 23
splinefun, 17
sprintf, 56, 73, 102
str, 88
substitute, 66
sunflowerplot, 105
sup (plotmath), 62
svg, 34
svg (cairo), 9
symbol (plotmath), 62
terrain.colors, 17, 53
terrain.colors (Palettes), 53
text, 44, 47, 48, 63, 66, 74
textstyle (plotmath), 62
tiff, 33, 34
tiff (png), 67
time, 104
title, 66
topo.colors, 16, 18
topo.colors (Palettes), 53
trans3d, 93
truehist, 52
Type1Font, 74, 78, 80, 94
underline (plotmath), 62
widehat (plotmath), 62
widetilde (plotmath), 62
windows, 34, 66
windows.options, 34
INDEX
X11, 10, 34, 59, 65, 68–70, 92, 93, 101
X11 (x11), 95
x11, 95
X11.options, 69
X11.options (x11), 95
X11Font (X11Fonts), 100
X11Fonts, 96, 100, 100
xfig, 34, 101
xy.coords, 13, 22, 103, 105, 106
xyTable, 104
xyz.coords, 105