2017-08-24 81 views
2

scale_color_brewer(direction = -1)を使用してプロットのカラーマップを反転しようとしています。ただし、これを行うとパレットも変更されます。ggplot2のデフォルトのカラーパレットを反転する方法

library(ggplot2) 
ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width, color=Species))+geom_point() 

# reverse colors 
ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width, color=Species))+geom_point()+ 
    scale_color_brewer(direction = -1) 

潜在的なソリューション

ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width, color=Species))+geom_point()+ 
scale_color_brewer(direction = -1, palette = ?) 
+0

タイトル – Ben

+0

を更新しましたが、答えを持っていないが、デフォルトのスケールは 'scale_color_discrete'、ない色のビールスケールです。パレットを 'scales :: hue_pal'と指定する' discrete_scale'を呼びます。*は 'direction'引数を取りますが、' scale_color_discrete(direction = -1) 'を追加すると、逆転するよりもパレットが変更されます。今すぐもっと掘り下げる時間がない... – Gregor

答えて

5

デフォルトのカラーパレットggplotはscale_color_hueです。

ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width, color=Species))+geom_point() 

は、色を反転ない

ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width, color=Species)) + 
    geom_point() + scale_color_hue(direction = 1) 

direction = -1と等価です。しかし、逆の順序で同じ3色を得るためには、色相ホイールの開始点を調整する必要があります。

ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width, color=Species))+geom_point()+ 
    scale_color_hue(direction = -1, h.start=90) 

各色が色相ポインタを30度移動させます。だから我々は、BTW 90

で出発点を設定し、カテゴリ変数のためscale_colour_brewer仕事をさせるために、あなたはtype = 'qual'を設定する必要があります。

ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width, color=Species))+geom_point()+ 
    scale_color_brewer(type = 'qual', palette = 'Dark2') 
0

私はより多くの制御のためのscale_color_manual()を使用します。反転されたカラーマップを持つ2つのバージョンがあります。

ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width, color=Species))+geom_point()+ 
+  scale_color_manual(values = RColorBrewer::brewer.pal(3,'Blues')) 

ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width, color=Species))+geom_point()+ 
+  scale_color_manual(values = rev(RColorBrewer::brewer.pal(3,'Blues'))) 
1

我々が得るためにscalesパッケージからhue_pal機能を使用することができます色の名前その後、scale_color_manualを使用してrevの色を指定し、色の順序をhue_palから逆にします。

library(ggplot2) 
library(scales) 

# Get the colors with 3 classes 
cols <- hue_pal()(3) 

# Plot the data and reverse the color 
ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width, color=Species)) + 
    geom_point() + 
    scale_color_manual(values = rev(cols)) 
関連する問題