小编Al1*_*l14的帖子

Pheatmap注释颜色和边框

Pheatmap library(pheatmap)需要annotation_colors添加在每个热图塔的顶部的标题ID的颜色.

我想添加白色作为带有边框的列标题颜色.可以添加边框,border_color但此功能也可以为整个热图绘制边框.

以下是我到目前为止所做的工作.

library(pheatmap)   
set.seed(123)
df<-data.frame( matrix(sample(30), ncol = 5))
colnames(df)<-LETTERS[1:5]
subj<-c("P1", "P2","P3", "T1", "T2","T3")
rownames(df)<-subj
aka2 = data.frame(ID = factor(rep(c("Pat","Trea"), each=3)))
rownames(aka2)<-subj
aka3 = list(ID = c(Pat = "white", Trea="blue"))
pheatmap(t(scale(df)),
         annotation_col = aka2, 
         annotation_colors = aka3[1],
         annotation_legend = FALSE,
         gaps_col =  3,
         show_colnames = T, show_rownames = T, cluster_rows = F, 
         cluster_cols = F, legend = TRUE, 
         clustering_distance_rows = "euclidean", border_color = FALSE)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

r pheatmap

15
推荐指数
3
解决办法
2万
查看次数

编辑条带大小ggplot2

我试图应用这个解决方案(如何在ggplot中更改小平面上的条带大小1)更改ggplot中小平面上的条带大小,我增加了高度大小

library(ggplot2)
library(gtable)

d <- ggplot(mtcars, aes(x=gear)) + 
            geom_bar(aes(y=gear), stat="identity", position="dodge") +
            facet_wrap(~cyl)

g <- ggplotGrob(d)
g$heights[[3]] = unit(5,"in")

grid.newpage()
grid.draw(g)
Run Code Online (Sandbox Code Playgroud)

这是我得到的,它只增加了条带顶部的空白(白色): 在此输入图像描述

为什么它的工作方式不同?

r ggplot2

13
推荐指数
1
解决办法
6413
查看次数

ggplot增加箱线图之间的距离

如何避免附加箱形图?谢谢

ggplot(df, aes(x=factor(time), y=val, fill=ID))+
geom_boxplot()+
scale_fill_manual(values=c(WT="goldenrod3", KO="steelblue"))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

r ggplot2 boxplot

6
推荐指数
1
解决办法
5577
查看次数

chordDiagram 函数,R 包 circlize

谁能告诉我如何更改 chordDiagram 函数(R 包 circlize)中的标签大小?我寻找了像 cex 或 cex.labels 这样的选项,但似乎找不到。另外,可以改变方向吗?

r circlize

5
推荐指数
2
解决办法
2914
查看次数

在 Pheatmap 中编辑行和列名称

我想编辑行和列名称,pheatmap或者最终删除并添加要编辑的新行和列名称。在这种情况下,我将设置show_colnamesshow_rownamesFALSE

library("pheatmap")
pheatmap(scale(dat), show_colnames = T, show_rownames = T,legend = TRUE,
             cluster_rows=F, cluster_cols=F, border_color = "grey60")
Run Code Online (Sandbox Code Playgroud)

有人可以帮我吗谢谢。

r pheatmap

5
推荐指数
1
解决办法
3万
查看次数

PCA分析去除质心

我用来fviz_pca_ind制作 PCA 图,如下所示。

 fviz_pca_ind(res.pca,  geom="point",  pointsize = 1, habillage=iris$Species, addEllipses=TRUE, ellipse.level=0.95
             , palette = c("green", "orange", "grey")) 
Run Code Online (Sandbox Code Playgroud)

我想删除质心,但保留我得到的不同颜色和椭圆habillage=iris$Species

col.ind需要一个元素数量等于行数的向量。

r pca factoextra

5
推荐指数
1
解决办法
4302
查看次数

在 geom_smooth 阈值之外的 ggplot 中标记值

只有当它们在置信区间(geom_smooth 区域)之外时,我才想在 ggplot 中标记值。下面是我的示例,我可以在其中标记所有这些。

a <- sample(1:15)
b <- sample(-6:-20)
c <-sample(letters,15)
x1 <- data.frame(a, b, c)

gg <- ggplot(x1, aes(x = a, y = b)) + labs(x = "New x label", y= "New x label") + 
  geom_point()+ geom_smooth(method=lm) + geom_text(aes(label=c),hjust=2, vjust=1) 
Run Code Online (Sandbox Code Playgroud)

r ggplot2

4
推荐指数
1
解决办法
2187
查看次数

在ggplot中更改颜色填充和点的形状

我想在ggplot中更改点的形状和颜色填充,这是我的代码部分工作,颜色图例仍然是黑色.

ID<-rep(c("KO", "WT"), each=4)
O<-rep(c("HP", "NN"), each=2, times=2)
Methionine<-rep(c("- Methionine", "+ Methionine"), each=2, times=2)
mean.1<-sample(50:100, 8)
se.1<-runif(8, min=1, max=3)
mydata<-data.frame(ID, O, Methionine, mean.1, se.1)

ggplot(mydata, aes(x=O, y=mean.1, ymax=max(mean.1), shape=Methionine, fill=ID)) + 
  geom_errorbar(aes(ymin=mean.1-se.1, ymax=mean.1+se.1), size=1,colour="black", width=.15) +
  geom_point( size = 10) +
  scale_shape_manual(labels=c("+ Methionine", "- Methionine"),
                     values = c(21,22))+
  scale_fill_manual(name=bquote(bold(paste(alpha, " "))), values = cols)
Run Code Online (Sandbox Code Playgroud)

r ggplot2

3
推荐指数
1
解决办法
3137
查看次数

在 rbind 数据框中的一行时分配行名称

我想在将一行绑定到新数据帧 (d) 时分配一个行名 (A_B)。该行是另一个数据框 (df) 的两行之比的结果。

    df <- data.frame(ID = c("A", "B" ),replicate(3,sample(1:100,2,rep=TRUE)))
    d <- data.frame()
    d<-rbind(d, df[df$ID == "A",2:4 ]/df[df$ID == "B", 2:4])
Run Code Online (Sandbox Code Playgroud)

实际产量

    X1   X2   X3
1 0.08 0.14 0.66
Run Code Online (Sandbox Code Playgroud)

预期输出。而不是 rowname 1 我想要 A_B 作为 A_B 比率的结果

       X1   X2   X3
A_B 0.08 0.14 0.66
Run Code Online (Sandbox Code Playgroud)

r rbind

2
推荐指数
2
解决办法
1万
查看次数

快速创建data.frame

有没有办法比我下面制作的更快或更智能地创建data.frame?

df <- data.frame(ID = rep(c("WT", "KO"), each = 4),
                 Time = rep(c("A", "B", "C", "D"), times = 2),
                 replicate(5,sample(0:100,8,rep=TRUE)))

colnames(df)<-c("ID", "Time", c("a", "b", "c", "d", "e"))
Run Code Online (Sandbox Code Playgroud)

data.frame仍然应该是这样的

df
ID Time  a  b  c  d  e
WT    A 28 56 50 60 15
WT    B 54 77 11 67 34
WT    C 53  8 87 62 55
WT    D 30 73 47 82  1
KO    A 24 83 14 17 36
KO    B 91 83 72 41  4
KO    C …
Run Code Online (Sandbox Code Playgroud)

r dataframe

1
推荐指数
1
解决办法
104
查看次数

将 NA 替换为非指定列数中的组平均值

collembola我想用每个组和mite多列中的平均值替换 NA 。这是一个包含 3 列的示例,但我想将其应用到包含 5000 列的数据框

dat <- read.table(text = 
                  "id    ID        length  width    extra
                  101   collembola  2.1     0.9     1
                  102   mite        NA      0.7     NA
                  103   mite        1.1     0.8     2
                  104   collembola  1       NA      3
                  105   collembola  1.5     0.5     4
                  106   mite        NA      NA      NA
                  106   mite        1.9     NA      4", 
                  header=TRUE)
Run Code Online (Sandbox Code Playgroud)

如果我输入每一列就可以了

library(plyr)
impute.mean <- function(x) replace(x, is.na(x), mean(x, na.rm = TRUE))
data2 <- ddply(dat, ~ ID, transform, length = impute.mean(length))
Run Code Online (Sandbox Code Playgroud)

ID collembola我想应用计算每个组和多个列的平均值的函数mite,下面是我尝试过的(它不起作用): …

r function plyr

1
推荐指数
1
解决办法
1400
查看次数

循环ggplot数据框中的不同变量

我想循环 ggplot 并获取每个变量的图表,代码如下。我收到错误aes

df <- data.frame(ID = c("a", "b"), A = rnorm(2), B = runif(2), C = rlnorm(2))
for(i in df[,2:ncol(df)]){
 plt<-ggplot(data=df, aes(x=df$ID, y = df[,2:ncol(df)]$i))+
    geom_bar()
  print(plt)
}
Run Code Online (Sandbox Code Playgroud)

问题是什么?

我知道我可以使用facet_grid.

ggplot(df_melt, aes(x=ID,y=value)) + geom_bar(stat="identity") + facet_grid(~variable)
Run Code Online (Sandbox Code Playgroud)

loops r ggplot2

1
推荐指数
1
解决办法
1147
查看次数

使用apply替换数据框中的多个值

我想使用apply来替换数据帧中的值,如果> 8 1星,如果> 10 2星,如果> 12 3星,否则NS.

mydata<-data.frame(A=1:10, B=3:12, C=5:14)
apply(mydata, 2, function(x) ifelse(x > 12, "***"|x > 10, "**"|x >= 8, "*"|x <8, "NS", x))
Run Code Online (Sandbox Code Playgroud)

r apply

1
推荐指数
2
解决办法
1016
查看次数

标签 统计

r ×13

ggplot2 ×5

pheatmap ×2

apply ×1

boxplot ×1

circlize ×1

dataframe ×1

factoextra ×1

function ×1

loops ×1

pca ×1

plyr ×1

rbind ×1