

次の様なデータResを使用した場合にRegの値で任意に色分けした散布図を作成したいです。  
Reg h w sex  
1 1 180 60 M  
2 2 155 50 F  
3 3 160 55 F  
4 2 170 65 M  
....

[code]

    base <- ggplot(Res, aes(x = h, y = w, colour = Reg))
    points <- base + geom_point(size = 5)
    plot(points)
    
[/code]

このままの実行ではRegの値での色分けはされるのですが、  
青系色の濃淡でのみ分けられている状態です。  
より明確に、赤や緑等に分けて表示したいのですが、  
どのように書けば良いのでしょうか。教えてください。  
よろしくお願いします。


CC BY-SA 3.0
2017-11-17T09:20:45.833
39650
2017-11-17T10:54:38.257
26231
question
r ggplot2
R : ggplotを使用した散布図の色分けについて


Res$Reg <\- factor(Res$Reg)

色が気に入らなければ、

scale_color_manual(values = c("hoge", "hoge"))

とするなど。


CC BY-SA 3.0
2017-11-17T10:18:28.217
39653
2017-11-17T10:18:28.217
23327
39650
answer


おそらくは，色分けに使用しているRegという変数が数値データ(連続量)として扱われているために，グラデーションの濃淡として色分けされるのだと思います。

なので，この変数をfactor型に変換すれば個別に色を指定できるようになるかと思います:

[code]

    library(ggplot2)
    
    ## 説明用データセット作成
    Res <- data.frame(
      Reg = sample(1:3, 50, replace = TRUE),
      h = rnorm(n = 50, mean = 165, sd = 10),
      w = rnorm(n = 50, mean = 55, sd = 10)
    )
    
    ## 色分けに使う変数をfactor型に
    Res$Reg <- as.factor(Res$Reg)
    
    ## 後は同一の記述でOK
    base <- ggplot(Res, aes(x = h, y = w, colour = Reg))
    points <- base + geom_point(size = 5)
    plot(points)
    
    ## 個別に色を指定も可能
    
    change_colors <- points + scale_colour_manual(values = c("red", "blue", "green"))
    plot(change_colors)
    
[/code]


CC BY-SA 3.0
2017-11-17T10:54:38.257
39655
2017-11-17T10:54:38.257
19063
39650
answer