R ggplot2 theme_set colorblind или dichromat color? - PullRequest
0 голосов
/ 10 мая 2018

В R ggplot2 вы можете theme_set(theme_grey() + "colorblind_function" в верхней части кода вместо добавления + scale_color_colorblind() к каждому графику?

Некоторые ггтемы, которые я использовал в прошлом:

show_col(colorblind_pal()(8))
show_col(tableau_color_pal("colorblind10")(10))
show_col(dichromat_pal("BluetoOrange.10")(10))

Ответы [ 2 ]

0 голосов
/ 11 мая 2018

Спасибо, Клаус.Я думаю, что мне нравится дихромат с категориальными 12 цветами лучше, но мне не нравится порядок, в котором находятся цвета. Вот как я понял, как изменить порядок.

show_col(dichromat_pal("Categorical.12")(12))

dichromat.fun <- function(...)
{
  discrete_scale("colour", "colorblind", dichromat_pal("Categorical.12"), 
                 ...)
}

my.dichromat.pal <- function(n){
  new.dichro.order.pal <- c("#664CFF", "#33FF00", "#FF8000", "#E61A33", "#FFFF33", "#FF99BF", "#1AB2FF", "#CCBFFF", "#B2FF8C", "#FFBF80", "#FFFF99", "#A6EDFF")
  new.dichro.order.pal[seq_len(n)]
}

my.dichromat.fun <- function(...){
  discrete_scale("colour", "colorblind", my.dichromat.pal, 
                 ...)
}


a.df <- data.frame(a=c(1,2,3,4,5,6,7,8,9,10,11,12), b=c(1,1,1,1,1,1,1,1,1,1,1,1))

scale_colour_discrete <- dichromat.fun

ggplot(a.df, aes(a, b, color=factor(a))) + geom_point(size=5)

scale_colour_discrete <- my.dichromat.fun

ggplot(a.df, aes(a, b, color=factor(a))) + geom_point(size=5)

original order

my order

0 голосов
/ 10 мая 2018

Вы можете установить цветовую шкалу по умолчанию, переписав scale_colour_discrete (и аналогично для fill, для непрерывных шкал и т. Д.):

library(ggplot2)
library(ggthemes)

scale_colour_discrete <- scale_colour_colorblind

ggplot(iris, aes(Sepal.Length, Sepal.Width, color = Species)) + 
  geom_point(size = 2)

enter image description here

...