扩展笔记 Top50 ggplot2 图库

Scatterplot

围绕图形示例、绘制逻辑与适用场景,便于快速迁移到自己的分析任务。

R训练营主题笔记

围绕图形类型整理适用场景、绘图思路与示例代码,便于快速迁移到自己的数据。

相关主题:1.Scatterplot ### Scatterplot

# install.packages("ggplot2")
# load package and data
options(scipen=999)  # turn-off scientific notation like 1e+48#这个操作就是把我们数据内以e结尾的数给其量化出来
library(ggplot2)
theme_set(theme_bw())  # pre-set the bw theme.
data("midwest", package = "ggplot2")
# midwest <- read.csv("<http://goo.gl/G1K41K>")  # bkup data source
#上面这个数据集读取不进来,所以我这里准备自己制备输入数据
#这个图是衡量两个变量之间相关性的可视化,所以我只需要制备两个变量的表达矩阵即可

#制备输入数据
scRNA_final <- readRDS("~/scRNA_final.rds")
expr1 <- data.frame(FetchData(object = scRNA_final, vars = "CD3D"))
#接下来我还需要一个类似的表达矩阵,同时我还需要一个变量来作为合并的桥梁
expr <- data.frame(FetchData(object = scRNA_final, vars = "LYZ"))
expr$Barcod<-rownames(expr)
#然后合并
expr3 <- merge(expr1,expr)
#然后遇到了问题,探索一下,从右上角变量那里我们知道,expr和expr1都只有2638个观测
#但是我合并完成后的expr3,却有6959044个观测
#问题探究后得到结论,应该是我们没有指定合并对象
#所以修改代码
c<-merge(expr,expr1,by='Barcod')
#然后提取后两列作为我们的输入数据
c <- c[,c(2,3)]
#探究一下,我们针对一个已经有行名的数据框如何删去其行名?
#这个基本上没有现成的函数可以帮助我们,但是我们可以通过输出函数,把数据集去掉行名或者列名输出出去,然后再读取进来
write.table(x, file = "pinggu.txt", row.names = FALSE, col.names = FALSE)

#当然我们如果通过merge函数合并也可以达到去除行名的效果
#回归正题
#然后整理输入数据后发现,这个数据因为有太多的0,所以不太适合作为输入数据,那么这里就直接开始研究代码~
gg <- ggplot(midwest, aes(x=area, y=poptotal)) + #横纵坐标
  geom_point(aes(col=state, size=popdensity)) + #点的颜色和大小
  geom_smooth(method="loess", se=F) + #添加拟合曲线,一般是默认即可
  xlim(c(0, 0.1)) + #X轴范围
  ylim(c(0, 500000)) + #Y轴范围
  labs(subtitle="Area Vs Population", #副标题
       y="Population", #Y轴标题
       x="Area", #X轴标题
       title="Scatterplot", #主标题
       caption = "Source: midwest")#右下角角标

plot(gg)
← 返回训练营笔记库 去看单细胞模块 →