查看: 1185|回复: 5

[R语言] R可视化14|ggthemr、gsci、tvthemes助您绘制靓丽美图

[复制链接]

钵水母

Rank: 3Rank: 3

主题
7
注册时间
2017.9.7
在线时间
44 小时

发表于 2020.10.28 18:08:27 | 显示全部楼层 |阅读模式
本帖最后由 xmymc 于 2020.10.31 11:26 编辑



本文首发个人公众号:pythonic生物人,更好的阅读体验请戳:R可视化14|ggthemr、gsci、tvthemes助您绘制靓丽美图
前面介绍了ggplot2的扩展主题包ggthems,本文介绍另外三个扩展主题包ggthemr|gsci|tvthemes
ggthems使用见文章:R可视化13|ggplot2-图层图形语法 (5)



本文目录

ggthemr
  • ggthemr函数
一般情况下只会设置palette 参数,指定主题名称,其它均为默认参数【即每种主题的字号,磅值,图边距等均可修改】。
[AppleScript] 纯文本查看 复制代码
> ggthemr
function (
palette = "dust", #设置主题名称 
layout = "clear", #其它参数一般保持默认,感兴趣的小伙伴可自行实验
spacing = 1, 
text_size = 12, 
type = "inner", 
line_weight = 0.5, 
pos = 1, 
envir = as.environment(pos), 
set_theme = TRUE) 
{。。。。。。。。。。。。。。。。
}




  • 提取ggthemr主题颜色为己用
[AppleScript] 纯文本查看 复制代码
library(ggthemr)
options(repr.plot.width = 4.5, repr.plot.height = 3, repr.plot.res = 300)
ggthemr('grape')
ggplot(mpg, aes(manufacturer, hwy)) + geom_boxplot() + ggtitle('flat')+theme(axis.text.x = element_text(angle = 45))
ggthemr_reset()

ggplot(mpg, aes(manufacturer, hwy)) + geom_boxplot() + theme(axis.text.x = element_text(angle = 45))

  • ggthemr所有主题展示
ggthemr具有17种主题,如下flat, flat dark, dust, light, earth, fresh, chalk, lilac, carrot, pale, copper, grape, greyscale, sky, solarized, grass, sea, camoflauge,以下为各种主题样式。
flat

flat dark

camoflauge

chalk

copper

dust

earth

fresh

grape

grass

greyscale

light

lilac

pale

sea

sky

solarized





ggsci
  • ggsci所有主题函数
ggsci提供如下几方面主题:scientific journals, data visualization libraries, science fiction movies, and TV shows,共计18种主题如下:



  • ggsci主题使用
以The New England Journal of Medicine杂志配色主题为例。
[AppleScript] 纯文本查看 复制代码
library("ggsci")
library("ggplot2")
library("gridExtra")
options(repr.plot.width = 7.5, repr.plot.height = 4, repr.plot.res = 300)
data("diamonds")

p1 = ggplot(subset(diamonds, carat >= 2.2),
       aes(x = table, y = price, colour = cut)) +
  geom_point(alpha = 0.7) +
  geom_smooth(method = "loess", alpha = 0.05, size = 1, span = 1) +
  theme_bw()

p2 = ggplot(subset(diamonds, carat > 2.2 & depth > 55 & depth < 70),
       aes(x = depth, fill = cut)) +
  geom_histogram(colour = "black", binwidth = 1, position = "dodge") +
  theme_bw()

#使用NEJM杂志主题
p1_nejm = p1 + scale_color_nejm()
p2_nejm = p2 + scale_fill_nejm()
grid.arrange(p1,p2,p1_nejm, p2_nejm, ncol = 2)
以下绿色框为ggplot2默认主题,红色框为ggsci中的NEJM主题

  • 提取ggsci主题颜色为己用
[AppleScript] 纯文本查看 复制代码
mypal = pal_nejm("default", alpha = 1)(9)
library("scales")
show_col(mypal)#可视化色号
mypal#输出色号


  • ggsci所有主题展示


tvthemes
  • tvthemes主题使用
Stannis色盘为例,Game of Thrones/A Song of Ice & Fire: ‘The Palettes of Ice & Fire’ (currently: Stark, Baratheon (Stannis), Lannister, Tully, Targaryen, Martell, Greyjoy, Tyrell, Arryn, Manderly)

[AppleScript] 纯文本查看 复制代码
#scale_fill_westeros
ggplot(mpg, aes(displ)) +
  geom_histogram(aes(fill = class), col = "black", size = 0.1) +
  scale_fill_westeros(palette = "Stannis", n = 7, reverse = TRUE) +
  scale_x_continuous(expand = c(0, 0)) +
  scale_y_continuous(expand = c(0, 0)) +
  labs(title = glue("
                    We do not choose our destinies. 
                    Yet we must... we must do our duty, no? 
                    Great or small, we must do our duty."),
       subtitle = "I will have no burnings. Pray Harder.",
       caption = glue("
                      The Iron Throne is Mine by Right.
                      - Stannis Baratheon"),
       x = "Bent Knees", y = "Lightbringer") +
  theme_minimal() +
  theme(text = element_text(family = "Cinzel", size = 20),
        plot.title = element_text(family = "Cinzel", size = 26),
        plot.subtitle = element_text(size = 18),
        plot.caption = element_text(size = 16),
        axis.text = element_text(size = 18),
        legend.position = "none") 


  • tvthemes主题其它样式展示
tvthemes提取影视剧主题色制作主题或色盘,如下:

  • Avatar: The Last Airbender: theme + palettes (Fire Nation, Water Tribe, Earth Kingdom, & Air Nomads)
  • Brooklyn Nine-Nine: theme + palettes (regular & dark)
  • Game of Thrones/A Song of Ice & Fire: ‘The Palettes of Ice & Fire’ (currently: Stark, Baratheon (Stannis), Lannister, Tully, Targaryen, Martell, Greyjoy, Tyrell, Arryn, Manderly)
  • Rick & Morty: theme + palette
  • Parks & Recreation: two themes (light & dark) + palette
  • The Simpsons: theme + palette
  • Spongebob Squarepants: theme + palette + background images
  • Hilda: Day, Dusk, Night themes + palettes
  • Attack on Titan: palette
  • Kim Possible: palette
  • Big Hero 6: palette
  • Gravity Falls: palette
  • More in future releases…
  • Development branch: TBD…
颜色非常靓丽



本文结束,更多好文,欢迎关注公众号:pythonic生物人



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

中华鲟

Rank: 5Rank: 5

主题
1
注册时间
2016.9.4
在线时间
125 小时

发表于 2020.10.29 08:24:46 | 显示全部楼层
来一波
新的一天加油!
回复

使用道具 举报

钵水母

Rank: 3Rank: 3

主题
0
注册时间
2016.12.8
在线时间
4 小时

发表于 2020.10.30 11:14:58 | 显示全部楼层
咔咔咔咔咔咔扩扩扩扩扩扩扩扩扩扩扩扩扩扩扩
回复

使用道具 举报

钵水母

Rank: 3Rank: 3

主题
7
注册时间
2017.9.7
在线时间
44 小时

 楼主| 发表于 2020.10.31 11:27:50 | 显示全部楼层
话说论坛什么时候能使用markdown啊,排版太难了
回复 支持 反对

使用道具 举报

钵水母

Rank: 3Rank: 3

主题
7
注册时间
2017.9.7
在线时间
44 小时

 楼主| 发表于 2020.10.31 11:47:00 | 显示全部楼层
回复 支持 反对

使用道具 举报

钵水母

Rank: 3Rank: 3

主题
7
注册时间
2017.9.7
在线时间
44 小时

 楼主| 发表于 2020.10.31 11:47:41 | 显示全部楼层
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表