доступ к цветам из темы ggtheme в ggplot - PullRequest
0 голосов
/ 26 мая 2018

У меня есть довольно хороший маленький сюжет, который я сделал с помощью ggplot, и он выглядит великолепно.У меня есть несколько баров, а затем несколько ригелей.Я использую theme_economist() из пакета ggthemes, и я хотел бы сделать столбцы одного цвета из этой темы, а поперечины - контрастным цветом.Но я не могу понять, как проникнуть в тему и выбрать пару цветов для этих элементов.Я могу изменить их на именованный цвет, и я могу изменить их на определенный шестнадцатеричный цвет, но мне кажется, что я должен быть в состоянии добраться до темы и сказать: «Дай мне два контрастных цвета из этой темы!»Как мне это сделать?

Вот пример, показывающий, что у меня есть ...

library(tidyverse)
library(ggthemes)

prices <- data.frame(year=2001:2010, 
                     price=rnorm(10))
additional_junk <- data.frame(year=2001:2010, 
                              thing=rnorm(10))

g_price <- ggplot() + theme_economist() + 
  scale_fill_economist() + 
  scale_colour_economist() +
  geom_bar(aes(y = price , x = year), 
           data = prices, stat="identity") +
  geom_crossbar(data=additional_junk, aes(x=year, y=thing, 
                                        ymin=0, ymax=0) 
  ) 
g_price

1 Ответ

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

ggthemes включает в себя объект списка ggthemes_data с различными палитрами и другими данными, используемыми пакетом (см. Ниже).Вы можете выбрать один из этих цветов.

library(ggthemes)

ggthemes_data$economist
$bg
      ebg     edkbg       red    ltgray    dkgray 
"#d5e4eb" "#c3d6df" "#ed111a" "#ebebeb" "#c9c9c9" 

$fg
  blue_gray   blue_dark green_light    blue_mid  blue_light  green_dark        gray  blue_light    red_dark   red_light 
  "#6794a7"   "#014d64"   "#76c0c1"   "#01a2d9"   "#7ad2f6"   "#00887d"   "#adadad"   "#7bd3f6"   "#7c260b"   "#ee8f71" 
green_light       brown 
  "#76c0c1"   "#a18376" 

$stata
$stata$bg
      ebg     edkbg 
"#C6D3DF" "#B2BFCB" 

$stata$fg
  edkblue  emidblue   eltblue   emerald     erose    ebblue  eltgreen     stone      navy    maroon     brown  lavender 
"#3E647D" "#7B92A8" "#82C0E9" "#2D6D66" "#BFA19C" "#008BBC" "#97B6B0" "#D7D29E" "#1A476F" "#90353B" "#9C8847" "#938DD2" 
     teal cranberry     khaki 
"#6E8E84" "#C10534" "#CAC27E"

Кроме того, как отмечают комментаторы, вы можете создавать палитры с economist_pal(), например, economist_pal()(2) или economist_pal(stata=TRUE)(3).

library(scales)

show_col(economist_pal()(9))

enter image description here

show_col(economist_pal(stata=TRUE)(9))

enter image description here

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