外観上の仕様

この vignette では、グリッド描画関数がとる様々なフォーマットについてまとめています。 この情報のほとんどは、Rのドキュメントの中に散らばっています。 この付録では、それらを一箇所にまとめています。

色と塗りつぶし

ほとんどの geom は色、塗りつぶし、またはその両方を持っています。 色と塗りつぶしは、以下の方法で指定できます。

線の外観は、色だけでなく、sizelinetypelinejoinlineend の影響を受けます。

線種

線種は以下の方法で指定できます。

線幅 (size)

線の size は、その幅を mm で表したものです。

線端・線結合のパラメター

mitre 結合は、角度が小さすぎる(非常に長いベベルを作成してしまう)場合、自動的に bevel 結合に変換されます。 これは linemitre パラメータで制御され、線の幅と mitre の長さの最大比率を指定します。

ポリゴン

多角形の境界は、前述のように color, linetype, size の美学によって制御されます。 内側は fill で制御されます。

ポイント

形状 {#sec:shape-spec} (英語)

シェイプは5種類の値を取ります。

(訳注: 上の図の右が切れていたため、x = 4.1x = 4.2 に変更しました。)

色と塗りつぶし

図21~24は、ストロークの「色」と「塗りつぶし」の両方を持っていることに注意してください。 塗りつぶし部分の大きさは size で制御され、ストロークの大きさは stroke で制御されます。 それぞれのサイズは mm で表され、ポイントの合計サイズは 2 つのサイズの合計になります。 なお、次の図では、サイズは対角線上で一定です。

sizes <- expand.grid(size = (0:3) * 2, stroke = (0:3) * 2)
ggplot(sizes, aes(size, stroke, size = size, stroke = stroke)) + 
  geom_abline(slope = -1, intercept = 6, colour = "white", size = 6) + 
  geom_point(shape = 21, fill = "red") +
  scale_size_identity()

テキスト

フォントファミリー

(訳注: 原文では font face となっていましたが、font family と解釈しました。)

どこでも使えることが保証されているフォントは 3 つしかありません。“sans”(デフォルト)、“serif”、“mono” です。

df <- data.frame(x = 1, y = 3:1, family = c("sans", "serif", "mono"))
ggplot(df, aes(x, y)) + 
  geom_text(aes(label = family, family = family))

テキストの描画はグラフィックデバイス(GD)ごとに異なるため、システムフォントをプロットに含めるのはより困難です。 一般的に使用されているGDは5つあり(png(), pdf(), Windows, Mac, Linuxのスクリーンデバイス)、 1つのフォントをどこでも使えるようにするには、5つのデバイスを5つの異なる方法で設定する必要があります。 2つのパッケージがこの問題を少しだけ解決してくれます。

どちらの方法にも長所と短所がありますので、実際に両方を試してみて、 どちらが自分のニーズに合っているかを見極める必要があります。

訳注: 以下は macOS 10.12 日本語環境です。 Osaka-Mono は要ダウンロード。

df <- data.frame(x = 1, y = 3:1, family = c("Hiragino Kaku Gothic Pro W6","Hiragino Mincho Pro W3","Osaka-Mono"))
ggplot(df, aes(x, y)) + 
  geom_text(aes(label = c("ゴシック","明朝体","等幅"), family = family))

フォントフェイス

df <- data.frame(x = 1:4, fontface = c("plain", "bold", "italic", "bold.italic"))
ggplot(df, aes(1, x)) + 
  geom_text(aes(label = fontface, fontface = fontface))

フォントサイズ

文字の大きさを mm 単位で表します。これは珍しいことですが、文字の大きさを線や点の大きさと一致させるためです。 ggplot2 では、この変換係数を変数 .pt で提供していますので、12ptのテキストを描きたい場合は、size = 12 / .ptと設定します。

位置

水平方向の位置と垂直方向の位置は同じパラメータで指定します。 値は、文字列(“top”, “middle”, “bottom”, “left”, “center”, “right”)か、0~1の数値を指定します。

just <- expand.grid(hjust = c(0, 0.5, 1), vjust = c(0, 0.5, 1))
just$label <- paste0(just$hjust, ", ", just$vjust)

ggplot(just, aes(hjust, vjust)) +
  geom_point(colour = "grey70", size = 5) + 
  geom_text(aes(label = label, hjust = hjust, vjust = vjust))

なお、(0, 1)以外の数値を使用することも可能ですが、お勧めできません。