R语言学习


Rstudio 快捷键

快捷键 定义
shift + alt + k 查看所有快捷键
Ctrl + 1/2/3/4/5/6 切换至不同的页面
ctrl + “-” 整体页面缩小
ctrl + shift + “=” 整体页面放大
绘图基本知识
1、基本几何对象类型和映射参数
geom_point(size = 3, shape = 1, data = best_in_class) # 该函数还在了一个data,与常用的geom_point()不同
geom_bin2d() #2维热图
geom_hex() # 用六边形表示的2维热图
geom_freqpoly() # 频率多边形图,binwidth = 表示
abline(data, lm(mpg~wt)) # 添加了一条最优拟合曲线,method = "lm"
geom_boxplot() # 箱线图,类似与直方图,也是需要在x轴上分组
geom_histogram() # 只有x轴需要指定
geom_line() # 按照x坐标的大小顺序依次连接各个观测值
geom_rug()# 边际地毯图
geom_density(data, aes(x = , fill = )) # 密度曲线,是否需要有y轴
geom_text() # 文本注释
geom_violin() # 小提琴图
geom_smooth()  #
geom_vline() # 竖直线
geom_hline() #函数添加参考线
geom_vline() #函数添加参考线
geom_rect() #函数在我们感兴趣的数据点周围绘制一个矩形
geom_segment()# 函数及arrow 参数绘制箭头,指向需要关注的数据点
facet_grid(am ~ vs) # 小面化
facet_wrap() # 在一个图中,分出更多的小图,每一小图为一组,以免数据全部集合在一张图上看不出区别,常用于散点图
ggpaired(ToothGrowth, x = "supp", y = "len",
         color = "supp", line.color = "gray", line.size = 0.4,
         palette = "jco")+
  stat_compare_means(paired = TRUE) # 配对并检验
aes() # 指定每个变量扮演的角色,不在aes()内的图形属性映射,则统一为一个常数
aes(x = colname1)
aes(x = data[,1]) # x指代并不一定是列名,也可以用标量
aes(group = ) #对数据进行分组,指定分组变量,可以用于x和y轴都是连续型变量情况下对数据分组
2、绘图细节~标量控制
ggpubr::show_point_shapes()  #x
xlim(10,20) # 一个从10到20的连续型标量,也可以是一个离散型标度或者日期型标度
ylim(20,10) # 一个从20到10的反转后连续型标量
expand() #控制溢出量
scale_x_continuous(breaks = seq(15, 40, by = 5), #也可以控制离散型的结果顺序
                   limits = c(12,20) #修改纳入的定义域的大小,即对纳入统计图形的变量的取值
                   ) #修改标度
scale_y_continuous() #修改标度
scale_x_discrete() # 用于因子
scale_y_discrete() # 用于因子
scale_x_log10() # 等同于scale_x_continuous(trans = "log10")
scale_x_continuous(labels = NULL) #不显示刻度标签
scale_color_brewer(palette = "Set1") ##预先指定分得清的颜色集
scale_fill_brewer(palette = "Set1")
scale_colour_hue() #离散型的默认的配色方案
scale_color_discrete() # 用于因子
scale_colour_manual(values = c(Republican = "red", Democratic = "blue"))# 数据值和颜色间的映射,用于离散型变量,对aes(colour = 变量)中colour指定颜色
scale_color_gradient(low = "white", high = "black") #或scale_fill_gradient() # 对于连续的颜色标度,low = , high = 
scale_color_gradient2() #表示分散性的颜色标度
scale_color_viridis() #来自viridis包
scale_fill_viridis()
set_default_scale() #更改默认的标度
3、绘图细节~文字控制
text(locator(1),labels="Here") #鼠标添加文本位置
identify(swiss[,1:2],labels=rownames(swiss))
labs(x = , y = , tittle = paste("xx"), subtitle = ,caption = , colour = , fill = ) #添加标题,对于colour和fill是改变图例的名称
xlab() # x轴的标签 ,注意与labels = “” 的区别
ylab() #
rotate_x_text(angle = 45) #标签旋转角度
pch = # 形状
linetype = # 线的类型,linetype = 2,表示虚线
binwidth =  ## 直方图的宽度,连续型数据在坐标轴上的分组长度(每一组的长度)
width = # 箱线图的宽度
notch = # 表示方块图是否应为缺口
se = FALSE #置信界限被抑制/去除
geom_text()
hjust=  vjust = #用于控制标签的对齐方式,共有九种组会 
geom_label()
ggrepel::geom_label_repel()#防止重叠,size= , label.size= ,的区别
theme(legend.position = "none") #不显示图例,theme(legend.position=c(.1,.8)),分别距离左侧边缘10%和底部边缘80%的部分
theme() #可以调整字体、背景、颜色和网格线,也可以分别调节
theme_bw() #theme_xx()基本主题有8种
guides() #控制单个图例的显示

plot2 <- LabelPoints(plot = plot1, points = top10, repel = TRUE) #标记出指定点的标签
## 添加标签
 ggrepel::geom_label_repel(aes(label = seurat_clusters),  #选择显示在图内的标签
                            data = class_avg, #标签数据,该数据含有x和y轴数据,以及
                            size = 5,
                            label.size = 1,
                            segment.color = NA
  )
4. 统计变换
stat_identity() #
aes(y = ..density..) #使用统计转换生成的变量,需在两边用..
aes(x = cell_type, y = ..count..)
geom_bar( mapping = aes(x = cut, y = ..prop.., group = 1) )
5. 位置调整
position="jitter" #表示点抖防止完全重复,多用于散点图中
6.坐标系
coord_cartesian(xlim = , ylim = ) #放大图形中的某部位,但是不改变标度的定义域,与xlim(limits = ) 不相同,也与标度的转换有所不同
coord_flip() #颠倒x轴和y轴
coord_trans(x = exp_trans(10), y = exp_trans(10))
coord_equal() # 控制相同标度
7、其它
dev.new() # 打开一个空白图形窗口
dev.off()# 关闭窗口
ggsave()#保存图像fig.width、fig.height、fig.asp、out.width 和out.height
save(p, file = "plot.Rdata") # 保存图形对象,这种方式使之可以再次更改,需要加file = 
load("plot.rdata") # 加载图形,以再次修改
8、常见绘图patterns
频数分布直方图
## 绘制频数直方图,观察观察数据特点,是否为直方图
MyHistogram <- function(data, #数据集
                        argu1,## 映射x轴
                        binwidth  ##设置组距
                        ){ggplot(data = data)+
    geom_histogram(aes(x = data[,which(colnames(mx) == argu1) ### 获取目标列名的标量
    ] ),
    binwidth = binwidth, ## 设置组距 
    alpha = 0.9, fill = "#69b3a2"
    )  +
    labs( x = paste0(argu1," expression (FPKM)")) +
    theme(panel.grid =element_blank())+   # 去除网格
    theme(panel.border = element_blank(),
          panel.background = element_blank()) +   ## 删去外层边框
    theme(axis.line = element_line(size=1, colour = "black"))  #绘画x和y轴
}
MyHistogram(mx,"HMGCR", 0.5)
MyHistogram(mx,"EZH2", 0.2)
MyHistogram(mx,"DNMT1", 0.2)
MyHistogram(mx,"IFNG", 0.05)
ggsave("dd.png")


### 编写函数
myHistrogram <- function(data1,argu1){  # argu1 为标量
  ggplot(data1) +
    geom_histogram(aes(x = data1[,argu1]))
}
###
MyHistogram <- function(data, #数据集
                        argu1,## 映射x轴
                        binwidth  ##设置组距
                        ){ggplot(data = data)+
    geom_histogram(aes(x = data[,which(colnames(mx) == argu1) ### 获取目标列名的标量
    ] ),
    binwidth = binwidth, ## 设置组距 
    alpha = 0.9, fill = "#69b3a2"
    )  +
    labs( x = argu1)
}
散点图——–查看两个因素之间的相关性
### 散点图-----------
ggplot(data = mx,mapping = aes( x = HMGCR, y = DNMT1))  +
  geom_point(shape = 21,position="jitter") +
  geom_smooth()+ 
  theme(panel.grid =element_blank())+   # 去除网格
  theme(panel.border = element_blank(),
        panel.background = element_blank()) +   ## 删去外层边框
  theme(axis.line = element_line(size=1, colour = "black"))  #绘画x和y轴
   

## 编写散点图函数
MyPoint <- function(data, # 数据集
                    argu1, #映射x轴
                    argu2  #映射y轴
                    ){
  ggplot(data = data,mapping = aes( x = data[,argu1], y = data[,argu2]))  +
    geom_point(shape = 21,position="jitter") +
    geom_smooth(method="lm", ## 拟合方法,默认的是
                se = FALSE) +
    labs(x = paste0(argu1," expression (FPKM)"), 
         y = paste0(argu2," expression (FPKM)")) +
    theme(panel.grid =element_blank())+   # 去除网格
    theme(panel.border = element_blank(),
          panel.background = element_blank()) +   ## 删去外层边框
    theme(axis.line = element_line(size=1, colour = "black")) +  #绘画x和y轴
  ggpubr::stat_cor(method = "pearson" #
                   )  ## 求相关系数和p值
}
MyPoint(mx, "HMGCR", "DNMT1")
MyPoint(mx, "HMGCR", "EZH2")
MyPoint(mx, "DNMT1", "EZH2")
MyPoint(mx, "EZH2", "DNMT1")
MyPoint(mx, "HMGCR", "IFNG")
MyPoint(mx, "IFNG", "EZH2")
MyPoint(mx, "IFNG", "DNMT1")
ggsave("dd.png")

箱线图
### 按组别观察,绘制箱线图

ggplot(data = mx, mapping = aes(x = mx[,"group"], y = mx[,"EZH2"])) +
  geom_boxplot(aes(color = mx[,"group"])) +
  labs(x = paste0("group"," by HMGCR expression"), 
       y = paste0("EZH2"," expression (FPKM)"),
       color = paste0("group")) +
  theme(panel.grid =element_blank())+   # 去除网格
  theme(panel.border = element_blank(),
        panel.background = element_blank()) +   ## 删去外层边框
  theme(axis.line = element_line(size=1, colour = "black")) +  #绘画x和y轴
  stat_compare_means(method = "wilcox.test" #默认的统计检验方法为"wilcox.test",也可以用”t.test"
  )


## 编写箱线图函数
MyBoxplot <- function(data,  #数据集
                    argu1, #映射x轴,为分组信息,类别数据,通常写出“group”
                    argu2, #映射y轴
                    argu3  #指定统计检验方法,如"wilcox.test"
){
  ggplot(data = data, mapping = aes(x = data[,argu1], y = data[, argu2])) +
    geom_boxplot(aes(color = data[,argu1])) +
    labs(x = paste0(argu1," by HMGCR expression"), 
         y = paste0(argu2," expression (FPKM)"),
         color = paste0(argu1)) +
    theme(panel.grid =element_blank())+   # 去除网格
    theme(panel.border = element_blank(),
          panel.background = element_blank()) +   ## 删去外层边框
    theme(axis.line = element_line(size=1, colour = "black")) +  #绘画x和y轴
    stat_compare_means(method = argu3 #默认的统计检验方法为"wilcox.test",也可以用”t.test"
    ) 
}
MyBoxplot(mx,"group","EZH2","wilcox.test")
MyBoxplot(mx,"group","EZH2","t.test")
MyBoxplot(mx,"group","DNMT1","wilcox.test")
MyBoxplot(mx,"group","DNMT1","t.test")
MyBoxplot(mx,"group","IFNG","wilcox.test")
MyBoxplot(mx,"group","IFNG","t.test")
ggsave("ddd.png")


### 两组之间比较
### 按组别观察,绘制箱线图

ggplot(data = mx, mapping = aes(x = mx[,"group"], y = mx[,"EZH2"])) +
  geom_boxplot(aes(color = mx[,"group"])) +
  labs(x = paste0("group"," by HMGCR expression"), 
       y = paste0("EZH2"," expression (FPKM)"),
       color = paste0("group")) +
  stat_compare_means(method = "wilcox.test" #默认的统计检验方法为"wilcox.test",也可以用”t.test"
  )


## 编写箱线图函数
MyBoxplot <- function(data,  #数据集
                    argu1, #映射x轴,为分组信息,类别数据,通常写出“group”
                    argu2, #映射y轴
                    argu3  #指定统计检验方法,如"wilcox.test"
){
  ggplot(data = data, mapping = aes(x = data[,argu1], y = data[, argu2])) +
    geom_boxplot(aes(color = data[,argu1])) +
    labs(x = paste0(argu1," by HMGCR expression"), 
         y = paste0(argu2,"
  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值