gglpot2的主题可以设置一些字体、颜色、背景色、网格线等东西。
概括的说元素函数主要有四种:element_text(文本)、element_lines(线条)、element_rect(矩形块)和element_blank(主题), 方式总体为 theme(主题元素=函数(参数))
简单示例:
x<-c(2015,2016,2017,2018,2019,2020) y<-c(12,13,14,25,36,57) test<-data.frame(Year=x,Num=y) p_theme <- ggplot(data = test, mapping = aes(x = Year, y = Num)) +geom_line(colour = 'blue', size = 1) + geom_point(colour = 'red', size = 2) p_theme
Ⅰ.对整体背景进行改变(rect 或者 blank)
theme(plot.background=element_rect(fill=,color=, size=, linetype=, ))#依次为填充色,轮廓色,边界大小,边界线条类型(dotted,dotdash,dashed,solid...) # p_theme+labs(title="小白学R",subtitle = "学不会",caption = "坚持")+ theme(plot.background=element_rect(fill='grey',color='red', size=2, linetype='dotdash'))
Ⅱ.对标题进行改变(text)
theme(plot.title=element_text(face=,color=,size=, hjust=,vjust=, angle=,lineheight=))#依次是字体类型 ("plain", "italic","bold", "bold.italic"),颜色,大小,水平位置(0到1),垂直位置(0到1),逆时针旋转(0到360),线高度
#对标题、X轴进行设置
p_theme+labs(title="小白学R",subtitle = "学不会",caption = "坚持")+ theme(plot.title=element_text(face="bold.italic",color="steelblue",size=24, hjust=0.5,vjust=0.5,angle=360,lineheight=113), ##对标题进行改变 axis.title.x=element_text(face="italic",color="#FFAEB9",size=16, hjust=0.5,vjust=0.5, angle=45,lineheight=113), ##对x轴的坐标轴名称进行改动 axis.text.x=element_text(face="bold",color="red",size=16, hjust=0.5,vjust=0.5, angle=90,lineheight=113), ##对x轴的坐标轴刻度值进行改动 axis.ticks.x=element_line(color='skyblue',size=9,lineend='round'), ##对x轴的刻度点类型进行改动 axis.line.x=element_line(color='yellow',size=6,lineend='butt')) ##对x轴的刻度线进行改动 lineend(round,butt,square)
Ⅲ. 面板背景色及网格线设置
//
p_theme+labs(title="小白学R",subtitle = "学不会",caption = "坚持")+ theme(panel.grid.major=element_line(color='skyblue',size=2,linetype=NULL,lineend='butt'))+ theme(panel.grid.minor=element_line(color='grey50'))+ #改变主次网格线颜色线型大小等 theme(panel.grid.major.x=element_blank(),panel.grid.minor.x=element_blank())+#同时隐藏与x坐标轴相交的主次网格线 theme(panel.grid=element_blank())+ #隐藏网格线(等价于同时隐藏主次网格线) theme(panel.background=element_rect(fill='grey')) #面板背景色
Ⅳ.总体调整
theme(rect=element_rect()) #矩形属性 theme(line=element_line()) #线性属性 theme(text=element_text()) #文本属性 theme(title=element_title()) #标题属性 Ⅴ.ggplot2的两个主题 theme_grey() 、theme_bw() Ⅵ.ggthemes包的十个主题 theme_economist() 、theme_economist_white() 、theme_wsj() 、theme_excel() 、theme_few() 、theme_foundation() 、theme_igray() 、theme_solarized() 、theme_stata() 、theme_tufte()
此12个主题可以自己画出来看一下,是否适合自己的绘图目的和风格。当然有了自己的审美之后,可以自定义theme,然后绘图时候进行调用。
另:theme同样可以根据自己需要的在上述的“+”前后选择合适的调整进行组合,未完待续。。。