Экспорт пользовательских цветовых палитр - PullRequest
0 голосов
/ 10 марта 2020

Я ищу способ создания своих собственных цветовых палитр, которые можно было бы вызывать в ggplot, экспортировать и делиться ими с моей командой - не требуя определения палитр для каждого кода .R. Что-то вроде пользовательских цветов темы Excel, сохраненных, например, как * .thmx.

В идеале это будет выглядеть так:

ggplot(mtcars, aes(wt, mpg)) +
    geom_point(size=4, aes(colour = factor(cyl))) +
    scale_colour_brewer(palette="Mypalette")

с Mypalette каким-то образом сохраняются на рабочем столе и быть вызываемым напрямую, не требуя определения его в моем коде заранее.

или как пакет Viridis - возможно, не самое простое решение

ggplot(mtcars, aes(wt, mpg)) +
    geom_point(size=4, aes(colour = factor(cyl))) +
    scale_color_viridis(discrete=TRUE)

Моя цель - получить общие общие палитры допуская визуальную согласованность графиков, сделанных несколькими участниками.

Если у вас есть какие-либо советы или рекомендации, я более чем заинтересован!

Большое спасибо!

Ответы [ 3 ]

1 голос
/ 10 марта 2020

Предположительно, вы хотели бы сделать что-то простое, например, добавить + scale_colour_company() в свои графики. На самом деле это очень легко сделать без необходимости использования целого пакета (хотя, конечно, если у вас в компании несколько пользователей R, в любом случае, для этого могут быть и другие веские причины).

Предположим, вы хотели бы иметь возможность сделать это:

data.frame(x = runif(30), y = runif(30), z = factor(rep(letters[1:3], 10))) %>%
  ggplot(aes(x = x, y = y, colour = z)) +
  geom_point(size = 5) + 
  scale_colour_company()

enter image description here

Все, что вам нужно, это определить функцию палитры, которая принимает одно целое число и возвращает вектор символов, представляющих цвета. Например:

company_palette <- function(n)
{
  company_colours <- c("forestgreen", "steelblue1", "#FD759A", "#A39847")
  if(n > length(company_colours)) stop("Need more company colours!")
  return(company_colours[seq(n)])
}

Теперь вы можете создавать свои ggplot-совместимые функции очень просто:

scale_fill_company <- function() discrete_scale("fill", "A", palette = company_palette)
scale_colour_company <- function() discrete_scale("colour", "A", palette = company_palette)

Сохраните эти 6 строк в скрипте .R, и вы можете go

0 голосов
/ 10 марта 2020

Управление вашей командой звучит как самая сложная часть этого процесса. Вы работаете над общим каталогом? Используете ли вы GitHub или аналогичную платформу?

Если вы находитесь в общем каталоге, вы можете стандартизировать некоторый код R, который читает в файле и присваивает цвета переменной с именем "Mypallette".

Вам просто нужно присвоить символьный вектор Mypallette, используя шестнадцатеричные коды, и рассказать своей команде об использовании процесса.

Пример:

Mypallette <- c("#CA0020","#F4A582", "#D3D3D3", "#92C5DE", "#0571B0")
0 голосов
/ 10 марта 2020

Чтобы поделиться палитрами с вашей командой, вы можете сделать пакет с палитрами. Посмотрите на один из множества пакетов палитры для примера, скажем https://github.com/nanxstats/ggsci

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...