在 R 中绘制直方图和 UpSet 图
Plot a histogram together with an UpSet plot in R
我有一个看起来像这样的数据框,
df <- data.frame(type=c("SNP","DEL","SNP","SNP"),geneA=c(1,1,1,0), geneB=c(0,0,1,1), geneC=c(1,0,0,1))
type geneA geneB geneC
1 SNP 1 0 1
2 DEL 1 0 0
3 SNP 1 1 0
4 SNP 0 1 1
我想在 R 中绘制一个 UpSet 图来找到共同基因并且
我想在直方图中绘制类型(SNP 或 DEL)的分布。
到目前为止,这是我的代码
upset(df,
attribute.plots = list(gridrows=50,
plots=list(list(plot=histogram,
x="type"))))
这是我的错误,我无法解决
Error: StatBin requires a continuous x variable: the x variable is discrete.Perhaps you want stat="count"?
非常感谢任何帮助
我不确定 the distribution of types (SNP or DEL) in an histogram
的确切含义。但是,由于示例中的 SNP 和 DEL 数据是二进制数据,因此您可能希望在条形图中绘制 SNP 和 DEL 的计数。如果是这样,你可以这样试试:
mybarplot <- function(mydata, x) {
(ggplot(mydata, aes_string(x = x)) + geom_bar()
+ theme(plot.margin = unit(c(0.5, 0.5, 0, 0), "cm"),
legend.key.size = unit(0.4, "cm")))
}
此函数将数据框及其列之一作为输入,并且
生成条形图作为其输出。然后,您在 upset
函数中调用此函数来生成条形图以及您的不安图。
upset(dftest, attribute.plots = list(gridrows = 50,
plots = list(list(plot = mybarplot,
x = "type"))))
我有一个看起来像这样的数据框,
df <- data.frame(type=c("SNP","DEL","SNP","SNP"),geneA=c(1,1,1,0), geneB=c(0,0,1,1), geneC=c(1,0,0,1))
type geneA geneB geneC
1 SNP 1 0 1
2 DEL 1 0 0
3 SNP 1 1 0
4 SNP 0 1 1
我想在 R 中绘制一个 UpSet 图来找到共同基因并且
我想在直方图中绘制类型(SNP 或 DEL)的分布。
到目前为止,这是我的代码
upset(df,
attribute.plots = list(gridrows=50,
plots=list(list(plot=histogram,
x="type"))))
这是我的错误,我无法解决
Error: StatBin requires a continuous x variable: the x variable is discrete.Perhaps you want stat="count"?
非常感谢任何帮助
我不确定 the distribution of types (SNP or DEL) in an histogram
的确切含义。但是,由于示例中的 SNP 和 DEL 数据是二进制数据,因此您可能希望在条形图中绘制 SNP 和 DEL 的计数。如果是这样,你可以这样试试:
mybarplot <- function(mydata, x) {
(ggplot(mydata, aes_string(x = x)) + geom_bar()
+ theme(plot.margin = unit(c(0.5, 0.5, 0, 0), "cm"),
legend.key.size = unit(0.4, "cm")))
}
此函数将数据框及其列之一作为输入,并且
生成条形图作为其输出。然后,您在 upset
函数中调用此函数来生成条形图以及您的不安图。
upset(dftest, attribute.plots = list(gridrows = 50,
plots = list(list(plot = mybarplot,
x = "type"))))