37

ggplot2は、画面/カラー印刷用の派手なグラフを生成しますが、グレースケールで印刷する場合、灰色の背景と色が干渉します。読みやすくするために、灰色の背景を無効にし、グループを区別するためにさまざまなグレーの色合いまたはさまざまな種類の塗りつぶしストロークを生成するカラージェネレーターを使用することをお勧めします。

4

3 に答える 3

50

**編集**更新されたコード:geom_barが必要statです。

theme_bwあなたが求めているものかもしれません。バーなどの塗りつぶしのあるジオメトリをプロットする場合、このscale_fill_grey関数を使用すると、灰色の色合いを制御できます。色(線や点など)のあるgeomをプロットする場合は、scale_colour_grey関数を使用して制御できます。私の知る限り、ggplotはパターン化された塗りつぶしをプロットしません。バーをプロットしていると仮定すると、以下は灰色の背景に色付きのバーをプロットします。

library(ggplot2)

data <- read.table(text = 
"type Year  Value 
 A    2000  3
 B    2000  10
 C    2000  11
 A    2001  4
 B    2001  5
 C    2001  12", sep = "", header = TRUE)

(p = ggplot(data = data, aes(x = factor(Year), y = Value)) +       
  geom_bar(aes(fill = type), stat="identity", position = "dodge"))

以下は、色付きのバーを灰色の色調に変更します。バーの1つがバックグラウンドで失われることに注意してください。

(p = p + scale_fill_grey(start = 0, end = .9))

以下は灰色の背景を削除します。

(p = p + theme_bw())

ここに画像の説明を入力してください

ポイントには塗りつぶしではなく色があります。したがって、ポイントにグレーの色合いを使用するには、次のようなものが必要になります。

(p = ggplot(data = data, aes(x = factor(Year), y = Value)) +       
  geom_point(aes(colour = type), size = 5) +
  scale_colour_grey(start = 0, end = .9) +
  theme_bw())

ここに画像の説明を入力してください

于 2012-11-22T07:14:01.897 に答える
4

他の回答者は、線/棒の色を自動的に調整することに焦点を当てています。ただし、印刷物の場合は、薄い灰色の線などは見分けがつかないので避けたいと思います。線種を自動的に調整するソリューションは次のとおりです(これは1日前まで可能であるとは気づいていませんでした)。

library(ggplot2)
theme_set(theme_bw())

data <- read.table(text = 
"type Year  Value 
 A    1998  6
 A    1999  8
 A    2000  6
 A    2001  7
 B    1998  4
 B    1999  5
 B    2000  10
 B    2001  5
 C    1998  8
 C    1999  6
 C    2000  9
 C    2001  8", sep = "", header = TRUE)

p <- ggplot(data=data,
            aes(x = factor(Year),
                y = Value,
                linetype = factor(type)))
p <- p + geom_line(aes(group = factor(type)),
                   size=0.8)

ここに画像の説明を入力してください

ggplotテーマは簡単にカスタマイズできることに注意してください。これが私自身のミニマルなggplotテーマを使用した別の結果です:

ここに画像の説明を入力してください

(アンチエイリアスは、ここ[png]よりもpdfにエクスポートした方がはるかに見栄えがします。)

于 2016-01-29T11:52:09.060 に答える
3

これがあなたが望むものの簡単な例です

library(ggplot2)

data <- read.table(text = 
  "Letter      Year    Value 
 A           1998    5
                B           1999    10
                C           2000    15
                A           2000    7
                B           2001    15
                C           2002    20", sep = "", header = TRUE)
ggplot(data = data, aes(x = factor(Year), y = Value, colour = Letter)) +       
  geom_line(aes(group = Letter)) + scale_colour_grey() +
  theme(panel.background = element_rect(fill='white', colour='black'))

ここに画像の説明を入力してください

于 2012-11-21T20:54:03.260 に答える