R语言画图-条形图,堆叠条形图(ggplot2)

Python019

R语言画图-条形图,堆叠条形图(ggplot2),第1张

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语言来进行最基本的计算。本合集共分为8小节,将简要介绍生物统计学相关基础知识以及如何使用R语言进行最基本的计算和分析。

需要说明的是,文中个别描述严格来讲并不准确但希望有助于理解,涉及到R语言的部分则展示了若干函数最基本用法,希望不给阅读和学习增加负担。另外,这份资料主要面向生物统计学和R语言基础薄弱的人群,勉强可以称之为极简手册 ,详细的学习还需要阅读相关教材资料。

在之前几节内容中提到了均值分析和比较,但有时候我们关心的并不是均值而是 比例 (proportion)。

对于n比较大(通常为 同时)的样本来说,根据中心极限定理,样本近似于正态分布,可以使用z检验,其检验统计量计算公式为:

其中, 表示观测到的比例, 为预期比例,n表示样本量, 。

如果样本比较小,则使用二项分布进行统计。

在R中,对于小样本,采用 binom.test() ,对于大样本使用正态分布近似二项分布,利用 prop.test() 进行分析。

在单样本比例检验中,我们关心的是具有同种特性的两个群体,在该特性总体中所占有的比例情况。例如,小鼠中公鼠母鼠各有一半,有100只患有某种疾病,其中有公鼠60只,母鼠40只。想知道是否公鼠患病率比母鼠高。在该问题中成功次数为公鼠患病数55,总次数为100,预期比例为50%(公母鼠数量相等)。

其中,x为成功的次数,n为总测试,p为要测试的概率大小。在结果中,显示了卡方检验的统计量值,自由度和p值和置信区间,最后给出了样本概率估计值。

如果我们已知两组具有不同特性(A和B)样本的样本量和这两组样本中具有某种共同特性(C)的个体数量(也就是知道了C特性各自群体比例和总体比例),想要计算具有C特性的个体在A特性群体和B特性群体中的比例是否一样,就需要用到 双比例检验

当样本数量较小时(所有np和nq都小于5),通常采用非参数检验 Fisher Exact probability test 进行分析。当样本力量较大时,我们还是近似使用正态分布z检验来进行预测。

例如,男生500人,女生500人,其中喜欢阅读的男生有400人,喜欢阅读的女生有460人。男生喜欢阅读的比例是否比女生高。我们假设男生喜欢阅读的比例比女生高,则备择假设是男生喜欢阅读的比例比女生低。

由结果可知,p<0.05,拒绝原假设,即男生喜欢阅读的比例比女生低。

分布可以通过原假设,得到一个统计量来表示期望结果和实际结果之间的偏离程度,进而根据分布,自由度和假设成立的情况,得出 观察频率极值 的发生概率(比当前统计结果更加极端的概率)。计算方法是对概率分布中的每一个频率,用期望频数和实际频数差的平方除以期望频数,最后把所有结果相加。得到的统计量结果越大,说明差别越显著,数值越小说明观察和期望的差别越小,当观察频数和期望频数一致是卡方为0。其实就是在比较观测到的比例和期望的比例的关系。

卡方分布就可以用来检验某个分类变量各类的出现概率是否等于指定概率,可以检验数据的 拟合优度 (指定的一组数据与指定分布的吻合度),也可以用来检验两个变量的 独立性 (两个变量之间是否存在某种关联)。

在使用卡方检验时,需要的一个参数被称为 自由度 ,指的是独立变量的个数(组数减去限制数)。通常,二项分布已知p,泊松分布已知 ,正态分布已知 和 时的自由度是n-1。进行独立性检验时,h行kl列联列表的自由度是 。

系列文章目录

一 R&B的节奏是怎么样的?`你这个问题很怪`如果一定要说的话要分几点

1 鼓的节奏问题``与摇滚和HipHop区别很大的是R&B的鼓点变化是很小的,而且很明显的,R&B大多是缓拍型,是比较简单的"嘭啪"节奏,也有个别采用的比较快节奏的鼓点``比如B2K和Justing的歌曲`正宗的老牌R&B都是缓拍的.比如

BoysⅡmen之类

2 Bass和吉他 本来是没这么复杂的`鬼知道音乐一直都在变,R&B是从Blues中衍生的,所以其编曲有一定的自由度(就是有时候你觉得他唱的很随意根本听不出小节了)你可以听听Babyface的`清一色的R&B``吉他的演奏是比较懒散的

还有你说的2 GARAGE,我也不是很了解,不过CRAIG的歌听的还多,应该是一种跳跃的舞曲风格,是从2 Steps这首歌得名的,类似一种两小节跳跃前进的曲风吧,听听知道个大概就行了吧

二 参照上面应该有一些了解了`你说的很对`最大的区别就是唱和说

当然还有其他分别比如在HipHop里面会有一段主旋律(可能是吉他或者Keyboard)是始终贯彻全曲的`是一种铺垫声`仔细听很容易听出来的,而R&B是没有的.可以这样看R&B是一首歌,而HipHop是在几段反复的旋律上加点词

三 这个好难``你觉得是摇滚就是了``

四 随时代进步什么配器都有的,基本的鼓 吉他 bass Keyboard9这个摇滚不一定有)还是有的```偶尔什么奇怪的东西也会进来