相关主题: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)