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)
我试图应用这个解决方案(如何在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)
为什么它的工作方式不同?
如何避免附加箱形图?谢谢
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)
谁能告诉我如何更改 chordDiagram 函数(R 包 circlize)中的标签大小?我寻找了像 cex 或 cex.labels 这样的选项,但似乎找不到。另外,可以改变方向吗?
我想编辑行和列名称,pheatmap或者最终删除并添加要编辑的新行和列名称。在这种情况下,我将设置show_colnames和show_rownames为 FALSE。
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)
有人可以帮我吗谢谢。
我用来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需要一个元素数量等于行数的向量。
只有当它们在置信区间(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) 我想在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) 我想在将一行绑定到新数据帧 (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) 有没有办法比我下面制作的更快或更智能地创建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) 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,下面是我尝试过的(它不起作用): …
我想循环 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) 我想使用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)