1.示例数据
在公众号回复:dexp.csv,获得示例数据。
示例数据:40个基因,每个基因9个重复,加上这9个重复各自的观测值,以及每个基因的长度。
2.读取数据
dexp <- read.csv("dexp.csv",row.names = 1)#设置第一列为行名
做散点图-以此为基础进行标度的修改练习
library(ggplot2)
p<-ggplot(data = dexp, aes(x = Gene, y = Expression))
pp <-p+geom_point(aes(color = Sample,
size = Expression,
shape = Group),
alpha = 8/10)#透明度是80%

3.修改标度
关于标度、引导元素、图例、标签的定义如果你还不会,参考ggplot第六篇教程。
修改一:引导元素名称,参数name
ppname <- pp+ scale_x_discrete(name = "doudouGene") +
scale_y_continuous(name = "huahuaExpression") +
scale_color_hue(name = "doudouSample") +
scale_size_continuous(name = "huahualength")

#后来继续学了一下,这个原来是有简单方法的,而且还可以写中文
ppname <- pp + labs(x = "豆豆", y = "花花",
color = "嘻嘻", size = "哈哈",shape="你看啥") #简单的写法

修改二:改标签,参数labels
在第六篇中的修改2,只修改了x轴的标签(坐标):参数lables,这里补充其他标签的修改方法。
(1)初阶:修改x轴标签(也就是坐标)
pplabel <- pp + scale_x_discrete(labels = c(1:40))

(2)中阶:修改其他标签
这里涉及到一个必会的知识点:离散型变量和连续型变量(discrete),通俗的解释就是字符算是离散型,数字算是连续型(continuous)
y轴坐标是数字,所以只能改数字的格式,有四种格式可以改:
- comma 每隔三位数显示逗号的格式
- percent 百分数
- dollar 美元
- scientific 科学计数法
修改连续型变量需要加载一个scales包(我已经忘了是不是自带的了。。)
library(scales)
pplabel2 <- ppname + scale_x_discrete(labels = c(1:40))+
scale_y_continuous(labels = dollar) +
scale_color_hue(labels = paste("doudou",seq(1,9),sep=""))+
scale_size_continuous(labels =scientific)+
scale_shape_discrete(labels=c("huahua1","huahua2","huahua3"))

注意一个问题:
这里的+是写在上一行末尾,不是写在第一行开头,否则就会报错,比如:

R的报错很任性,很严谨,而且还很有用。我喜欢_
修改3:定义域和值域,参数limits
pplim1 <- pp+ scale_x_discrete(limits = paste("G",seq(5,9),sep="")) + #只显示5-9
scale_y_continuous(limits = c(500, 1500))#只显示小于500-1500的-复杂的写法
还有一个简化的命令
pplim2 <- pp + xlim(paste("G",seq(5,9),sep="")) +#简单的写法
ylim(500, 1500)

然后会出现一个警告信息,注意是警告不是报错

这些点是pp这个图里的一部分,那对应哪一块呢?

修改4:设置显示的刻度(breaks)

这个例子是为了让你看清楚这个操作只是隐藏或者增加了一些刻度,在实际应用中,比如x轴坐标隔一个显示一个,或者改变y轴的刻度跨度等等,还是比较实用的。
ppbreak <- pp + scale_x_discrete( breaks = paste("G",seq(5,9),sep=""))+ #只是动了坐标轴,全部显示
scale_y_continuous(breaks = seq(500,1500, by=100))#500-1500 #每一百设置一个刻度
想要学好R语言一定要手持一本《R数据科学》,因为啃完这本书就可以掌握80%的R语言技能!
当当8.28-9.3在做活动优惠价83.4一本

另外生信技能树做了啃这本书的知识星球,大咖云集带你上树~~~

网友评论