r语言画GO弦图数据准备,R语言画弦图

如何用R语言画图

q1, 首先要确定是barplot还是hist,如果是barplot的话,应该不存在breaks的问题,因为barplot的传入参数是个矩阵;

创新互联专注于宾县企业网站建设,响应式网站开发,商城网站建设。宾县网站建设公司,为宾县等地区提供建站服务。全流程按需定制开发,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务

我假设你要画的是个hist,我偶遇过这个问题,我的理解是hist的breaks的值要能被范围整除才行;比如x=1:200,break=7的话,就只能画出4个柱来,但如果breaks=10就没问题;基本上是这样的,偶尔也有例外;比如break=5就不行....奇怪得很

最后,没办法的办法,就只能用barplot代替hist了,barplot肯定不会有这个问题,统计下hist参数中的分布情况,转换成矩阵,用barplot吧;

q2, 貌似一般都用一组因素把这些类别区分开,我用abcde,表示你的小学,中学...了,比如这样:

a=1:7;b=8:10;c=c(9,10,11);d=c(40,55);e=100:110f=factor(c(rep(1,sum(length(a),length(b),length(c))),rep(2,sum(length(d),length(e)))))#先用c()生成数组,在转换成factor,其实数组也ok的,不过plot()中两个数组和factor不一样 x=c(a,b,c,d,e)plot(x~f)q3, 就我所知不行;yes或no一定也要是能映射到x,y范围内的点才行;你是想表示分类结果吗?如果是的话,通常用颜色,或者在点旁边的text表示。

q4, 举个例子吧

x=-50:50y=x^2+x+1z=10*abs(x)+1 plot(x,y,type='l')lines(x,z,lty=3)legend(c('type1','type2'), x=-20,y=2500, col=c('black','red'), lty=c(1,3))legend的x和y是legend的左上角,匿名参数是类型名称,col,lty,pch 是对应的颜色,线类型,和点类型。

最后,我现在多用ggplot2,如果不抵触的话可以看看,和R的基础作图包思路不是很一样,但是图很清新的;

如果还有问题,建议把数据集data.frame粘贴几行上来,我也试试;

r语言go注释统计分析图怎么画

#include int main(int argc, char ** argv) {int i = 1, j = 1, k = 1;do {do {if (i != 5)printf(" ");j++;} while (j

【R语言】解决GO富集分析绘图,标签重叠问题

前面我给大家详细介绍过

☞GO简介及GO富集结果解读

☞四种GO富集柱形图、气泡图解读

☞GO富集分析四种风格展示结果—柱形图,气泡图

☞KEGG富集分析—柱形图,气泡图,通路图

☞ DAVID GO和KEGG富集分析及结果可视化

也用视频给大家介绍过

☞ GO和KEGG富集分析视频讲解

最近有粉丝反映说,利用clusterProfiler这个包绘制GO富集分析气泡图和柱形图的时候,发现GO条目的名字都重叠在一起了。

气泡图

柱形图

这个图别说美观了,简直不忍直视。经过我的认真研究,发现跟R版本有关。前面我给大家展示的基本都是R 3.6.3做出来的图。很多粉丝可能用的都是最新版本的R 4.1.2。

我们知道R的版本在不停的更新,相应的R包也在不停的更新。我把绘制气泡图和柱形图相关的函数拿出来认真的研究了一下,终于发现的症结所在。

dotplot这个函数,多了个 label_format 参数

我们来看看这个参数究竟是干什么用的,看看参数说明

label_format :

a numeric value sets wrap length, alternatively a custom function to format axis labels. by default wraps names longer that 30 characters

原来这个参数默认值是30,当标签的长度大于30个字符就会被折叠,用多行来展示。既然问题找到了,我们就来调节一下这个参数,把他设置成100,让我们的标签可以一行展示。

是不是还是原来的配方,还是熟悉的味道

同样的柱形图,我们也能让他恢复原来的容貌。

关于如何使用R做GO和KEGG富集分析,可参考下文

GO和KEGG富集分析视频讲解

[R语言] GO富集分析可视化 GOplot::GOCircle

查看GOplot内示例数据的格式,对自己的数据做处理

观察结论:

观察自己的两个数据表:

table.legend 设置为T时会显示表格

本图中表格和图例是出图后剪切拼合而成,没有用R中的拼图包

r语言中,画出了频率分布直方图,怎么在图上添加概率分布曲线?

可以用内置的graphic包来画,就是plot()和curve()

也可以用ggplot2来画,后者更灵活。

graphic

# 先生成一组随机数

x - rnorm(2000)

# 画频率直方图, 分30个bin

hist(x, freq = F, breaks = 30) 

# 再画概率分布曲线

lines(density(x, bw=.5), col="red", lwd=2)

2. ggplot2

# 准备工作, 把x设成一个数据集

library(ggplot2)

data - data.frame(x = x)

# 生成底层和直方图,概率线的图层

p - ggplot(data, aes(x = x, y = ..density..))

p - p + geom_histogram(fill = "navy")

p - p + geom_density(colour = "green")

p

画出来风格不太一样,看你口味了

R语言基本数据分析

R语言基本数据分析

本文基于R语言进行基本数据统计分析,包括基本作图,线性拟合,逻辑回归,bootstrap采样和Anova方差分析的实现及应用。

不多说,直接上代码,代码中有注释。

1. 基本作图(盒图,qq图)

#basic plot

boxplot(x)

qqplot(x,y)

2. 线性拟合

#linear regression

n = 10

x1 = rnorm(n)#variable 1

x2 = rnorm(n)#variable 2

y = rnorm(n)*3

mod = lm(y~x1+x2)

model.matrix(mod) #erect the matrix of mod

plot(mod) #plot residual and fitted of the solution, Q-Q plot and cook distance

summary(mod) #get the statistic information of the model

hatvalues(mod) #very important, for abnormal sample detection

3. 逻辑回归

#logistic regression

x - c(0, 1, 2, 3, 4, 5)

y - c(0, 9, 21, 47, 60, 63) # the number of successes

n - 70 #the number of trails

z - n - y #the number of failures

b - cbind(y, z) # column bind

fitx - glm(b~x,family = binomial) # a particular type of generalized linear model

print(fitx)

plot(x,y,xlim=c(0,5),ylim=c(0,65)) #plot the points (x,y)

beta0 - fitx$coef[1]

beta1 - fitx$coef[2]

fn - function(x) n*exp(beta0+beta1*x)/(1+exp(beta0+beta1*x))

par(new=T)

curve(fn,0,5,ylim=c(0,60)) # plot the logistic regression curve

3. Bootstrap采样

# bootstrap

# Application: 随机采样,获取最大eigenvalue占所有eigenvalue和之比,并画图显示distribution

dat = matrix(rnorm(100*5),100,5)

no.samples = 200 #sample 200 times

# theta = matrix(rep(0,no.samples*5),no.samples,5)

theta =rep(0,no.samples*5);

for (i in 1:no.samples)

{

j = sample(1:100,100,replace = TRUE)#get 100 samples each time

datrnd = dat[j,]; #select one row each time

lambda = princomp(datrnd)$sdev^2; #get eigenvalues

# theta[i,] = lambda;

theta[i] = lambda[1]/sum(lambda); #plot the ratio of the biggest eigenvalue

}

# hist(theta[1,]) #plot the histogram of the first(biggest) eigenvalue

hist(theta); #plot the percentage distribution of the biggest eigenvalue

sd(theta)#standard deviation of theta

#上面注释掉的语句,可以全部去掉注释并将其下一条语句注释掉,完成画最大eigenvalue分布的功能

4. ANOVA方差分析

#Application:判断一个自变量是否有影响 (假设我们喂3种维他命给3头猪,想看喂维他命有没有用)

#

y = rnorm(9); #weight gain by pig(Yij, i is the treatment, j is the pig_id), 一般由用户自行输入

#y = matrix(c(1,10,1,2,10,2,1,9,1),9,1)

Treatment - factor(c(1,2,3,1,2,3,1,2,3)) #each {1,2,3} is a group

mod = lm(y~Treatment) #linear regression

print(anova(mod))

#解释:Df(degree of freedom)

#Sum Sq: deviance (within groups, and residuals) 总偏差和

# Mean Sq: variance (within groups, and residuals) 平均方差和

# compare the contribution given by Treatment and Residual

#F value: Mean Sq(Treatment)/Mean Sq(Residuals)

#Pr(F): p-value. 根据p-value决定是否接受Hypothesis H0:多个样本总体均数相等(检验水准为0.05)

qqnorm(mod$residual) #plot the residual approximated by mod

#如果qqnorm of residual像一条直线,说明residual符合正态分布,也就是说Treatment带来的contribution很小,也就是说Treatment无法带来收益(多喂维他命少喂维他命没区别)

如下面两图分别是

(左)用 y = matrix(c(1,10,1,2,10,2,1,9,1),9,1)和

(右)y = rnorm(9);

的结果。可见如果给定猪吃维他命2后体重特别突出的数据结果后,qq图种residual不在是一条直线,换句话说residual不再符合正态分布,i.e., 维他命对猪的体重有影响。


分享题目:r语言画GO弦图数据准备,R语言画弦图
本文链接:http://ybzwz.com/article/dscgdhd.html