R语言画图的

您所在的位置:网站首页 论文作图配色参考r语言可用 R语言画图的

R语言画图的

2024-07-09 17:05| 来源: 网络整理| 查看: 265

文章目录 1. theme函数实现图的全局修改2. 图的精确修改3. 其他修改1. 坐标轴的排序:2. 实现一页多图 4. 具体作图中的参数修改(某些特殊的参数)柱状图的参数修改 写在最后

ggplot2是R中用来作图的很强的包,但是其用法比较多且各种参数比较复杂,我自己使用的时候还经常需要查阅一些关键参数等,因此想要写一个r中ggplot2的作图文档,方便自己查阅。

但是今天突然发现了一个网站,这个网站里面包含了ggplot2作图的几乎所有内容。有各种图的制作,参数的说明,图的图例的调整等;而且还赋上了代码以及跟参数的使用说明,可以说十分的详细, 以后可以专门对它做个介绍。这个网站的地址是:The R Graph Gallery

今天主要介绍ggplot2的图修改,以及部分常见的问题,后续会一直更新的。

1. theme函数实现图的全局修改 theme函数中的位置详解图, 其主要分为5个元素 : (整幅图的(plot),坐标轴的(axis),图例的(legend),面板的(panel)和分面元素(facet)) 此处文章引自–链接: link

在这里插入图片描述 用法: theme函数其实很简单: theme(主题.部件=element_类型()) 主题:plot, axis, legend, panel, facet 部件:title(名字,坐标轴名字), line(线,坐标轴的xy轴), text(标签,坐标轴刻度的数字), ticks(坐标轴刻度的小线条), background(背景)等 类型:rect,line,text 说明:部件要和类型一致。比如,部件为title,text等文字相关的元素,那么类型处就为text。

整幅图的主题设置 library(tidyverse) head(mtcars) p1=ggplot(mtcars,aes(mpg,disp))+geom_point() p2=ggplot(mtcars,aes(mpg,disp,color=cyl))+geom_point() #1.整幅图的主题设置 p1+labs(title="xyz")+theme( plot.background = element_rect(fill = "green", color = "lightgreen", size = 10), plot.title = element_text(hjust = 1, color = "red", face = "italic"), plot.margin = margin(t = 30, r = 30, b = 30, l = 30, unit = "pt") ) #2.坐标轴主题设置 p1+theme( axis.line = element_line(color = "green", size = 2), axis.ticks = element_line(color = "red", size = 3), axis.title = element_text(color = "grey", face = "italic"), axis.text = element_text(color = "pink"), axis.text.x = element_text(angle = 45, hjust = 1) ) #3.面板元素设置 p1+ theme( panel.background = element_rect(fill = "pink", color = "blue"), panel.grid = element_line(color = "grey80", size = 0.5) ) #4.图例设置 p2+theme( legend.background = element_rect(fill = "grey"), legend.title = element_text(color = "green", size = 10), legend.key = element_rect(fill = "black"), legend.text = element_text(color = "red"), legend.margin = margin(t = 20, r = 10, b = 10, l = 10, unit = "pt"), legend.position = "top" ) #5 图的自动输出 # ggsave 保存pdf ggsave("df3a.pdf") # export中graph2ppt 保存ppt给格式 library(export) graph2ppt(file = "df3a.ppt", append=T) 2. 图的精确修改

例子:

# 先搞一个图出来 rm(list = ls()) data=data.frame(data_c=1:10,data_i=1:10) library(ggplot2) p = ggplot(data,aes(x=s1,y=s2,size=s2))+geom_point()

在图p中修改属性, 下面几乎包含图的精细修改的所有部分, 其他不太常用:

p+ # 添加背景 theme_bw()+ # 添加title和x轴,y轴的名称 # legend包含colour和shape的因子,就可以使用者两个参数来调节其名字 # fill 更改legend的title labs(title='xxxx',y="xxxx",x="xxxx", colour = "xxxx",shape = "xxxx", fill='xxxxx')+ # 调节title的位置和字体大小 theme(plot.title=element_text(hjust=0.5,size = 20))+ # 调节纵坐标轴的刻度字母大小 theme(axis.text.y = element_text(size = 20))+ # 调节横坐标轴的刻度字母大小 theme(axis.text.x = element_text(size = 20))+ # 调节纵坐标的title的大小 theme(axis.title.y = element_text(size = 20))+ # 调节横坐标的title的大小 theme(axis.title.x = element_text(size = 20))+ # 调节legend的大小(包含title 和内容) theme(legend.text=element_text(size=15))+ theme(legend.title =element_text(size=20))+ # 坐标轴刻度字条旋转角度 theme(axis.text.x = element_text(angle = 45, hjust = 1)) + # 改变横纵坐标的值 scale_x_continuous(breaks=1:10,labels=1:10)+ # 改变横纵坐标上刻度的排列方向 scale_x_reverse()+ # 调节y轴的长度 ylim(0,100)+ #调节x轴的长度 xlim(0.7, 1.0)+ 3. 其他修改 1. 坐标轴的排序:

我们可以通过scale_x_discrete中的limits对离散型坐标轴随意设置坐标轴先后。

数字型连续向量只能从大到小或者从小到大排列,不能改变顺序, 可以变为字符类型(as.character())----再排序 只有字符串类型才可以改变坐标轴刻度的顺序 # 根据实际图的坐标上的内容来进行排序 p+scale_x_discrete(limits=as.character(c(1,2,10,3,5,6,7,4,8,9))) # 或者 # 将数据转换为字符类型,然后转换为factor因子,然后排序, 最后直接画图就好了 data$data_c=as.character(data$data_c) data$data_c=factor(data$data_c,levels =c(1,2,10,3,5,6,7,4,8,9)) # factor设置level来设置先后顺序 2. 实现一页多图

cowplot 和patchwork 和ggpubr, 可以通过??+函数名来查找更详细的参数设置

## 构造数据和图 x


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3