标度控制着数据到图形属性的映射,标度将我们的数据转化为视觉上可以感知的东西,比如大小、位置、颜色、形状等。标度也为我们提供了读图时所使用的工具,比如说坐标轴和图例。总的来说,可以称为引导元素。标度函数控制元素的属性,可以理解为图形的遥控器,可以用它来调整画布大小、颜色等等。此前学的shape,color,size等参数和标度函数相比显得不够灵活。
scale_fill_brewer 调色板函数
geom_errorbar()
geom_crossbar()
geom_linerange() 绘制线段
geom_pointrange() 绘制点
pointrange:点画线
首先绘制一张盒形图
在图上显示出观测值
值得注意的是,图上点的多少并不能完全反应原始数据的多少,因为有的点可能因为点过于密集就会被覆盖,看起来是一个点,其实可能是多个点。
因此可以使用geom_jitter函数将不同的点区分开(jitter是震荡散点),width设置如果遇到相同的点,点向左右方平移的距离。alpha设置透明度。
黑色点是离群点
还可以绘制卡槽图
varwidth参数会根据该水平下观测值的个数(n值)改变盒形图的宽度。(这里宽度去的不是观测个数的绝对值,而是平方根,以缩小差距。)
给盒子上色
分组盒形图,用不同颜色区分
画水平的盒形图
使用coord_flip函数(坐标轴翻转函数)
绘制一张直方图
bins可以设置直方图条柱的数目,默认为30。当bins和binwidth(设置条柱宽度)同时设置时,默认以binwidth为准。
新加入变量cut,根据新变量在price水平上进行一个计数
y轴由count变为density,绘制概率密度
注意下面density的写法,前后都要加..
绘制概率密度曲线:geom_density函数
堆栈密度概率曲线
geom_line/geom_path/geom_step
绘制一个简单的线图
绘制点线图,点和线需要分别添加。
如上图,线在点之上,是因为先投射了点,又投射了线。
先投射线,点就出现在了线之上。
线的颜色出现了渐变
geom_smooth函数:绘制拟合曲线
methods还有其他的方法,如glm:广义线性模型;losses:纯粹平滑;gam:广义加性模型等等(lm和glm最常用)
geom_hline绘制水平线,geom_vline绘制垂直线。xintercept和yintercept是截距,slope是斜率。
1. barplot函数
>a=matrix(1:18,2)
>a
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
[1,] 1 3 5 7 9 11 13 15 17
[2,] 2 4 6 8 10 12 14 16 18
>class(a) #查看a数据类型
[1] "matrix"
注意barplot函数对象要么是向量,要么是矩阵,若不是,则要进行数据数据类型进行转换
>barplot(d) #所有参数默认
>?barplot
常见参数就不赘述了,几个个人认为比较重要参数如下
names.arg----在每个条形图或条形图下绘制的名称向量。 如果省略此参数,那么如果它是向量,则从height的names属性中获取名称;如果它是矩阵,则从列名称中获取名称。
legend.text----数据为矩阵的时候用,如果legend.text为true,则height的行名称非空时将用作标签。
horiz----默认false,为竖直条形图,改为TRUE,为水平条形图
beside---如果为FALSE,则将高度列描绘为堆叠的条,如果为TRUE,则将列描绘为并列的条
space---每根柱子之前留出的空间量(以平均柱子宽度的一部分为单位)。 可以以单个数字或每个小节一个数字的形式给出。 如果height是一个矩阵,并且next为TRUE,则可以用两个数字指定空间,其中第一个是同一组中的条形之间的间隔,第二个是组之间的间隔。 如果未明确给出,则如果height为矩阵,并且next为TRUE,则默认为c(0,1),否则为0.2。
还有很多参数可以通过help()查询
>barplot(a,names.arg = c('1','2','3','4','5','6','7','8','9'),beside = TRUE,horiz = TRUE,col = rep(c('blue','green','gray'),3),legend.text = TRUE)
>barplot(a,names.arg = c('1','2','3','4','5','6','7','8','9'),beside = F,horiz = TRUE,col = rep(c('blue','green'),2),legend.text = TRUE)
>barplot(a,names.arg = c('1','2','3','4','5','6','7','8','9'),beside = F,horiz = F,col = rep(c('blue','green'),2),legend.text = TRUE)
2.ggplot2包
安装加载包
install.package('ggplot2')
library(ggplot2)
#创建矩阵
data<-data.frame(Sample<-c(rep('control1',3),rep('control2',3),rep('control3',3),rep('treat1',3),rep('treat2',3),rep('treat3',3),rep('treat4',3)), contion<-rep(c('Cell','Tissue','Organ'),7), value<-c(503,264,148,299,268,98,363,289,208,108,424,353,1,495,168,152,367,146,48,596,143))
colnames(data)=c('sample',"contion","value")
ggplot(data,mapping = aes(Sample,value,fill=contion))+geom_bar(stat='identity',position='fill') +labs(x = 'Sample',y = 'frequnency') +theme(axis.title =element_text(size = 16),axis.text =element_text(size = 14, color = 'black'))+theme(axis.text.x = element_text(angle = 45, hjust = 1))
#ggplot函数,geom从数据到几何图像,geom_bar为柱状图,geom_line为线型图等,aes形成映射,x轴为sample,y轴为value,堆叠为contion,geom_bar()函数为建立柱状图,stat参数-统计变换,position参数为柱状图形式,position= 'fill'(图形元素堆叠且高度标准化为1),position= 'stack'(图形堆叠图),参数position= 'dodge'(并列数据,非堆叠展示),coord画图在某个坐标系中,facet将绘图窗口分成若干子窗口用来生成数据中不同子集的图形
# labs为标题,theme为设置标题参数,axis.title为轴标题信息,axis.text为轴注释文本,axis.text.x表示设置x轴的信息,还有更多参数详查ggplot2包
ggplot(data,mapping = aes(Sample,value,fill=contion))+geom_bar(stat='identity',position='fill') +labs(x = 'Sample',y = 'frequnency') +theme(axis.title =element_text(size = 16),axis.text =element_text(size = 14, color = 'black'))+theme(axis.text.x = element_text(angle = 45, hjust = 1))+coord_flip() #加的函数可实现水平柱状图展示
ggplot(data,mapping = aes(Sample,value,fill=contion))+geom_bar(stat='identity',position='stack') +labs(x = 'Sample',y = 'frequnency') +theme(axis.title =element_text(size = 16),axis.text =element_text(size = 14, color = 'black'))+theme(axis.text.x = element_text(angle = 45, hjust = 1))
ggplot(data,mapping = aes(Sample,value,fill=contion))+geom_bar(stat='identity',position='dodge') +labs(x = 'Sample',y = 'frequnency') +theme(axis.title =element_text(size = 16),axis.text =element_text(size = 14, color = 'black'))+theme(axis.text.x = element_text(angle = 45, hjust = 1))
R语言绘制环形树状图
1.主要用到dendextend和circlize包绘图;
2.更改树状图的位置;
3.如果想要去掉图例标签,可设置 labels = FALSE参数;
4.个性化设置:树状分支颜色、文字标签颜色、风格和树状线条的宽度。