R语言数据可视化——图形色彩设计(调色盘)

更新时间:2023-07-07 04:24:15 阅读: 评论:0

R语⾔数据可视化——图形⾊彩设计(调⾊盘)
R语⾔数据可视化——图形⾊彩设计
图形颜⾊的选择对我们最终图形呈现的效果影响很⼤,我们需要⽤到的图形配⾊也跟随着图形出现的场合⽽变化,这篇⽂章整理了前辈们制作的在ggplot包绘制图形时,常常使⽤的配⾊包,供⼤家在不同场合下选择合适的配⾊。
主题颜⾊代码包
在这⾥,主要介绍4个常⽤的调⾊包:RColorBrewer、ggthmr、ggsci、ggthemes,这些包有⼀些已经⽣成好的⾊条或者主题供我们选择使⽤。
⾸先,加载好我们需要⽤到的R包和数据 :
library(RColorBrewer)
library(scales)
library(readxl)
library(ggplot2)
library(ggthemes)
library(ggsci)
library(ggtech)thm
library(dplyr)
library(viridis)
library(jtools)
library(wesanderson)
library(gridExtra)
twd("/Urs/apple/Desktop/ggplot 可视化")
movie=read.csv("清洗后数据.csv")
happy=read.csv("2019.csv")
college=read.csv("college.csv")
a<-filter(movie,relea_date == 'SummerVacation')
df1 <- as.data.frame(table(a$content_rating))
conairb<-filter(movie,relea_date == 'Christmas')
df2 <- as.data.frame(table(b$content_rating))
c<-filter(movie,relea_date == 'Easter')
df3 <- as.data.frame(table(c$content_rating))
d<-filter(movie,relea_date == 'Other')
df4 <- as.data.frame(table(d$content_rating))
DF<-rbind(df1,df2,df3,df4)
DF$relea_date<-c('SummerVacation','SummerVacation','SummerVacation','SummerVacation','SummerVacation','Christmas','Christmas','Christmas','Chr istmas','Christmas','Easter','Easter','Easter','Easter','Easter','Other','Other','Other','Other','Other')
常⽤的配⾊包
RColorBrewer
RColorBrewer是较为常⽤的调整颜⾊的R包
⾊块展⽰
(1)连续型Sequential,⽣成渐变颜⾊的⾊条,可以在热图等图形中使⽤。
(2)极端型Diverging,⽣成深⾊强调两端、浅⾊表⽰中部的颜⾊,可⽤来标注数据中的离群点。
(3)离散型Qualitative,⽣成彼此差异明显的颜⾊,通常⽤来标记分类数据。
display.brewer.all(type = "all")
c语言学习班
截取⾊条⾊块
display.brewer.pal(3, "Set1")
图形绘制
stacked=ggplot(movie,aes(imdb_score,fill=relea_date))+
geom_histogram(position = "stack",
binwidth =.5,
alpha=.9,
color="black")+theme_minimal()+
labs(title = "Stacked Histogram")
pie=ggplot(DF, aes(x="", y=Freq, group=Var1, color=Var1, fill=Var1)) +
geom_bar(stat="identity",width=1,position = position_fill()) +
coord_polar("y", start=0)+
facet_wrap(~ relea_date)+    ##通过relea_date分⾯展⽰
labs(x = "", y = "", title ="Movie content rating") +
theme_minimal()+
theme(axis.ticks = element_blank())+
theme(legend.title = element_blank())+
theme(legend.position = "top")+
= element_blank())
point=ggplot(iris,aes(Sepal.Length,Sepal.Width),Species)+
geom_point(aes(color = Species)) +
theme_minimal()+
theme(legend.position = "right")+
ggtitle("point plot")
box=ggplot(diamonds,aes(cut,price,fill=color))+
geom_boxplot()+
ggtitle("Box Plot")+
theme_minimal()+
guides(fill=guide_legend(title=NULL))
box_brew=box+scale_fill_manual(values =colorRampPalette(brewer.pal(9,"Set1"))(7))
point_brew=point+scale_color_manual(values =colorRampPalette(brewer.pal(9,"Set1"))(5))
pie_brew=pie+scale_color_manual(values =colorRampPalette(brewer.pal(9,"Set1"))(5)) stacked_brew=stacked+scale_fill_manual(values =colorRampPalette(brewer.pal(11,"Paired"))(4))
grid.arrange(box_brew,stacked_brew,point_brew,pie_brew,ncol=2)
这⾥颜⾊代表的都是分类数据,故选择的离散型⾊条代表其不同颜⾊的分类。viridis
viridis包能够⽣成⼀系列连续型⾊条,⽐较适⽤于绘制热图等图形的颜⾊填充。
k <- ggplot(college, aes(tuition,faculty_salary_avg))
hexplot <- k +
geom_hex()+
facet_grid("control")+        #分⾯
scale_fill_viridis()+        #颜⾊设定
labs(title="Hex histogram")+
theme_bw()+
theme(plot.title = element_text(hjust = 0.5))
暑期班
m=ggplot(heatmap, aes(x = X2, y = X1, fill = value)) +
geom_tile() + scale_fill_viridis() +
scale_x_discrete(expand = c(0, 0)) +
scale_y_discrete(expand = c(0, 0)) +
coord_equal()+
labs(title="Heat plot")
grid.arrange(hexplot,m,ncol=2)
通过颜⾊的深浅,来表⽰数值的⼤⼩和密度分布。
wesanderson
这个包中包含16种⾊条颜⾊,他们都是从Wes Anderson的电影⾥⾯选取的颜⾊。
names(wes_palettes)
wes_palette("FantasticFox1")      #查看⾊板
wes_palette("Cavalcanti1",3)
#离散型
stacked_wes=stacked+scale_fill_manual(values=wes_palette(n=4, name="Zissou1"))
#连续型
pal <- wes_palette("Zissou1", 100, type = "continuous")
heat=ggplot(heatmap, aes(x = X2, y = X1, fill = value)) +
geom_tile() +
scale_fill_gradientn(colours = pal) +
scale_x_discrete(expand = c(0, 0)) +
scale_y_discrete(expand = c(0, 0)) +  labs(title = "Heat map")+
coord_equal()
grid.arrange(stacked_wes,heat,ncol=2)
wesanderson包可以⽣成连续型颜⾊也可以⽣成离散型颜⾊,只需改变wes_palette()函数中的type参数便可,type = c(“discrete”,“continuous”)。
学术型配⾊
ggsci包
Name Scales Palette Types Palette Generator
NPG scale_color_npg()
scale_fill_npg()
“nrc”pal_npg()
AAAS scale_color_aaas()
scale_fill_aaas()
“default”pal_aaas()
NEJM scale_color_nejm()
scale_fill_nejm()
“default”pal_nejm()
Lancet scale_color_lancet()
scale_fill_lancet()
“lanonc”pal_lancet()
JAMA scale_color_jama()
scale_fill_jama()
“default”pal_jama()
JCO scale_color_jco()
scale_fill_jco()
“default”pal_jco()
UCSCGB scale_color_ucscgb()
scale_fill_ucscgb()
“default”pal_ucscgb()
D3scale_color_d3()
scale_fill_d3()
“category10” “category20” “category20b” “category20c”pal_d3() scale_color_locuszoom()
LocusZoom scale_fill_locuszoom()“default”pal_locuszoom()
IGV scale_color_igv()
scale_fill_igv()
“default”“alternating”pal_igv()
UChicago scale_color_uchicago()
scale_fill_uchicago()
“default”“light”“dark”pal_uchicago()
西班牙语
Star Trek scale_color_startrek()
scale_fill_startrek()
“uniform”pal_startrek()
Tron Legacy scale_color_tron()
scale_fill_tron()
“legacy”pal_tron()
Futurama scale_color_futurama()
scale_fill_futurama()
“planetexpress”pal_futurama()
Rick and Morty scale_color_rickandmorty()
scale_fill_rickandmorty()
“schwifty”pal_rickandmorty()
The Simpsons scale_color_simpsons()
scale_fill_simpsons()
“springfield”pal_simpsons()
GSEA scale_color_ga()
scale_fill_ga()
“default”pal_ga()
Material Design scale_color_material()
parda
scale_fill_material()
“red” “pink”“purple” “deep-purple”“indigo” “blue”“light-
blue” “cyan”“teal” “green”“light-green” “lime”“yellow”
“amber”“orange” “deep-orange”“brown” “grey”“blue-grey”
pal_material()
Name Scales Palette Types Palette Generator
ggsci包使⽤的函数为scale_color_xxx()/scale_fill_xxx(),下⾯以NEJM杂志和Lancet杂志为例,展⽰其绘制的图形颜⾊。
NEJM杂志配⾊
box_nejm=box+scale_fill_nejm()
point_nejm=point+ scale_color_nejm()
pie_nejm=pie+ scale_fill_nejm()
stacked_nejm=stacked+ scale_fill_nejm()
grid.arrange(box_nejm,stacked_nejm,point_nejm,pie_nejm,ncol=2)
Lancet杂志配⾊
box_nejm=box+scale_fill_lancet()
point_nejm=point+ scale_color_lancet()
pie_nejm=pie+ scale_fill_lancet()
英文简历怎么写stacked_nejm=stacked+ scale_fill_lancet()
grid.arrange(box_nejm,stacked_nejm,point_nejm,pie_nejm,ncol=2)
杂志配⾊
ggthemes包
ggthemes包使⽤函数与ggsci相似,使⽤scale_fill_xxx(),scale_color_xxx(),theme_xxx()填充颜⾊,与ggsci包相⽐,ggthemes 可以对其背景主题进⾏设置。在这⾥以经济学⼈和华尔街⽇报为例,展⽰其配⾊。
经济学⼈配⾊
box_economist=box+scale_fill_economist()
point_economist=point+ scale_color_economist()宁波一对一辅导
pie_economist=pie+scale_fill_economist()
stacked_economist=stacked+ scale_fill_economist()
grid.arrange(box_economist,stacked_economist,point_economist,pie_economist,ncol=2)
谚语英语
经济学⼈配⾊采⽤的是蓝⾊渐变风。
华尔街⽇报配⾊
真题box_wsj=box+scale_fill_wsj()+ggthemes::theme_wsj(ba_size = 8)
point_wsj=point+ scale_color_wsj()+ggthemes::theme_wsj(ba_size = 8)
pie_wsj=pie+ scale_fill_wsj()+ggthemes::theme_wsj(ba_size = 8)
stacked_wsj=stacked+ scale_fill_wsj()+ggthemes::theme_wsj(ba_size = 8)
grid.arrange(box_wsj,stacked_wsj,point_wsj,pie_wsj,ncol=1)
ggthemes包中的主题例如华尔街⽇报等风格鲜明,但适⽤范围较为局限。
ggthemr包
library(ggthemr)
ggthemr_ret()
ggthemr('pale',
layout = 'scientific',          #⽹格线、轴线等布局
spacing = 1,                    #图形中的留⽩值
type = 'inner')                  #应⽤于画图区域
grid.arrange(box,stacked,point,pie,ncol=2)
ggThemeAssist包——交互化图形参数调整
ggThemeAssist包可以交互式调整图形各个参数并⾃动⽣成代码。在使⽤该包时,需要先加载shiny包。运⾏完图形后,选择addins中的ggplot Theme Assist便可以交互式调整图形各个参数,并⾃动⽣成代码。
library("shiny")
library("ggThemeAssist")
k=ggplot(diamonds,aes(cut,price,fill=color))+
geom_boxplot()
总体⽽⾔,简洁的背景配上合适的颜⾊较为美观,反⽽那些花⾥胡哨的theme设置适⽤范围会较局限。
在线配⾊⼯具
color brewer
Data Color Picker
Viz Palette
⾊盲模拟器
Chroma.js Color Palette Helper

本文发布于:2023-07-07 04:24:15,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/169583.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:图形   数据   华尔街   主题   选择   参数   包中
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图