Эмулировать цветовую палитру по умолчанию ggplot2

Какую функцию я могу использовать для эмуляции цветовой палитры ggplot2 по умолчанию для желаемого количества цветов. Например, входной сигнал 3 создавал бы символьный вектор цветов HEX с этими цветами: введите описание изображения здесь

Это равномерно распределенные оттенки вокруг цветового круга, начиная с 15:

 gg_color_hue <- function(n) { hues = seq(15, 375, length = n + 1) hcl(h = hues, l = 65, c = 100)[1:n] } 

Например:

 n = 4 cols = gg_color_hue(n) dev.new(width = 4, height = 4) plot(1:n, pch = 16, cex = 2, col = cols) 

введите описание изображения здесь

Это результат

 library(scales) show_col(hue_pal()(4)) 

Четыре цвета ggplot

 show_col(hue_pal()(3)) 

Три цветных ggplot

Эти ответы очень хороши, но я хотел поделиться другим, что я обнаружил в stackoverflow, который действительно очень полезен, вот прямая ссылка

В основном, @DidzisElferts показывает, как вы можете получить все цвета, координаты и т. Д., Которые ggplot использует для построения сюжета, который вы создали. Очень хорошо!

 p <- ggplot(mpg,aes(x=class,fill=class)) + geom_bar() ggplot_build(p)$data [[1]] fill y count x ndensity ncount density PANEL group ymin ymax xmin xmax 1 #F8766D 5 5 1 1 1 1.111111 1 1 0 5 0.55 1.45 2 #C49A00 47 47 2 1 1 1.111111 1 2 0 47 1.55 2.45 3 #53B400 41 41 3 1 1 1.111111 1 3 0 41 2.55 3.45 4 #00C094 11 11 4 1 1 1.111111 1 4 0 11 3.55 4.45 5 #00B6EB 33 33 5 1 1 1.111111 1 5 0 33 4.55 5.45 6 #A58AFF 35 35 6 1 1 1.111111 1 6 0 35 5.55 6.45 7 #FB61D7 62 62 7 1 1 1.111111 1 7 0 62 6.55 7.45 

Со страницы 106 книги GGPLOT2 Хэдли Уикхэма:

Цветовая схема по умолчанию, scale_colour_hue выбирает равномерно разнесенные оттенки вокруг цветного колеса hcl.

С помощью немного обратной инженерии вы можете построить эту функцию:

 ggplotColours <- function(n = 6, h = c(0, 360) + 15){ if ((diff(h) %% 360) < 1) h[2] <- h[2] - 360/n hcl(h = (seq(h[1], h[2], length = n)), c = 100, l = 65) } 

Демонстрируя это в барплоте:

 y <- 1:3 barplot(y, col = ggplotColours(n = 3)) 

введите описание изображения здесь

  • Как просмотреть исходный код для функции?
  • Есть ли более эффективная альтернатива, чем манипулирование строками для программной сборки формул?
  • Декартовы данные продукта в R
  • Участок с условными цветами на основе значений в R
  • Создать счетчик с несколькими переменными
  • Найти имя файла из полного пути к файлу
  • Форматирование десятичных знаков в R
  • Предупреждающее сообщение: В `...`: недопустимый факторный уровень, сгенерированный NA
  • Как отсортировать данные по нескольким столбцам?
  • Изменение цвета в ggpairs теперь, когда параметры устарели
  • Используйте значение из предыдущей строки в расчете R.table.table
  • Interesting Posts

    Как удаленно управлять Mac OS X Snow Leopard с рабочего стола Windows?

    как исправить проблему «Command / bin / sh failed with exit code 1» в iphone

    Windows снижает объем из-за «связи»

    Записываются ли программы Windows в журнал?

    Как копировать ячейки в Excel 2007 и вставлять с форматированием

    Синхронизация папок на разных компьютерах без облака и без сети

    Windows говорит, что Dvorak является раскладкой клавиатуры по умолчанию, но все новые окна используют QWERTY

    Обнаружение, если аудиофайл FLAC или WAVPACK НЕ изначально кодирован из источника с потерями

    Запустить часть кода, содержащуюся в строке

    Как использовать getJSON, отправляя данные с помощью метода post?

    Как установить gpg на cygwin? В настоящее время он отсутствует

    Прозрачная заставка для Linux?

    Как найти индекс элемента списка в Swift?

    Как установить пользователя в качестве пользователя по умолчанию в браузере Chrome / Chrome, когда у меня есть несколько подписей?

    Ошибка «Устройство ввода не является TTY»

    Давайте будем гением компьютера.