Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用R复制这个情节_R_Ggplot2_Reshape - Fatal编程技术网

用R复制这个情节

用R复制这个情节,r,ggplot2,reshape,R,Ggplot2,Reshape,我有两组病人。我想为两组病人画一幅图 像这样的情节 我有这样的数据 > dput(df) structure(list(gene = c("18q", "4q", "21p", "21q", "5q", "22q", "17p", "3p", "9p", "4p", "9q&qu

我有两组病人。我想为两组病人画一幅图

像这样的情节

我有这样的数据

> dput(df)
structure(list(gene = c("18q", "4q", "21p", "21q", "5q", "22q", 
"17p", "3p", "9p", "4p", "9q", "19q", "10q", "15q", "16p", "19p", 
"1p", "18p", "16q", "8p", "21q", "4q", "18q", "21p", "1p", "3p", 
"4p", "17p", "5q", "16q", "18p", "14q", "19p", "20q"), CNV = c("Deletion", 
"Deletion", "Deletion", "Deletion", "Deletion", "Deletion", "Deletion", 
"Deletion", "Deletion", "Deletion", "Deletion", "Deletion", "Deletion", 
"Deletion", "Deletion", "Deletion", "Deletion", "Deletion", "Deletion", 
"Deletion", "Deletion", "Deletion", "Deletion", "Deletion", "Deletion", 
"Deletion", "Deletion", "Deletion", "Deletion", "Deletion", "Deletion", 
"Deletion", "Deletion", "Amplification"), log10_pvalue = c(5.974694135, 
5.73754891, 4.995678626, 4.970616222, 4.793174124, 4.793174124, 
4.109020403, 3.524328812, 3.524328812, 2.823908741, 2.567030709, 
2.186419011, 1.769551079, 1.59345982, 1.59345982, 1.59345982, 
1.416801226, 1.195860568, 1.094743951, 1.087777943, 4.083019953, 
3.826813732, 3.826813732, 3.826813732, 2.675717545, 2.675717545, 
2.675717545, 2.342944147, 2.084072788, 1.850780887, 1.659555885, 
1.197226275, 1.197226275, 1.88941029), Percentage_altered = c(0.61, 
0.53, 0.61, 0.56, 0.44, 0.5, 0.5, 0.44, 0.5, 0.47, 0.39, 0.28, 
0.33, 0.31, 0.33, 0.31, 0.22, 0.36, 0.33, 0.33, 0.63, 0.52, 0.59, 
0.67, 0.26, 0.44, 0.52, 0.48, 0.33, 0.44, 0.44, 0.3, 0.33, 0.5
), group = c("Non-responders", "Non-responders", "Non-responders", 
"Non-responders", "Non-responders", "Non-responders", "Non-responders", 
"Non-responders", "Non-responders", "Non-responders", "Non-responders", 
"Non-responders", "Non-responders", "Non-responders", "Non-responders", 
"Non-responders", "Non-responders", "Non-responders", "Non-responders", 
"Non-responders", "Responders", "Responders", "Responders", "Responders", 
"Responders", "Responders", "Responders", "Responders", "Responders", 
"Responders", "Responders", "Responders", "Responders", "Responders"
)), class = "data.frame", row.names = c(NA, -34L))
>
我已经尝试过这个代码,但没有给我你所产生的

df %>%
  mutate(net_frequency=ifelse(CNV == "Deletion", -Percentage_altered/100, Percentage_altered/100)) %>%
  crossing(., tibble(grp = c("Responders", "Non-Responders"))) %>%
  mutate(log10_pvalue = if_else(CNV == "Deletion", -log10_pvalue, log10_pvalue)) %>% 
  ggplot(aes(x = log10_pvalue, y = net_frequency, color = log10_pvalue)) +
  geom_point(aes(size=Percentage_altered)) +
  geom_text_repel(aes(label=ifelse(log10_pvalue > -log10(0.05), gene, "")), force=10) +
  geom_hline(yintercept=0, lty=2) +
  scale_color_distiller(type = "div") +
  theme_classic() +
  facet_wrap(~grp)
我得到了这样一个情节,但毫无意义

如果您查看,对于这两个组,仅绘制响应者的信息


你能帮我编辑代码吗?

正如@andrew_reece所建议的,
facet.*
将在这里提供帮助

由于数据中没有“响应者”的概念,我将使用
tidyr::crossing
盲目复制数据

另外,为了演示,我删除了
theme\u classic
以突出显示窗格。(使用它没有问题,我只是想弄清楚区别。)

库(dplyr)
图书馆(GG2)
库(ggrepel)#几何体_文本_repel
图书馆(三天)#十字路口
df%>%
突变(净频率=ifelse(CNV==“删除”、-改变百分比/100、改变百分比/100))%>%
交叉点(.tible(resp=c(“响应者”、“非响应者”))%>%
ggplot(.aes(x=log10\u p值,y=净频率))+
几何点(aes(大小=改变百分比,颜色=对数10值))+
几何文本排斥(aes(标签=ifelse(log10\u pvalue>-log10(0.05),基因“”),力=10)+
geom_hline(yintercept=0,lty=2)+
面_包裹(.~resp)


至于“两组颜色不同”,你需要什么并不清楚。如果您希望(例如)响应者的色标为“蓝色”,非响应者的色标为“红色”,那么请查看ggplot扩展包,例如
ggnewscale
ggrelayer
。(它们不是烤熟的。)

正如@andrew_reece所建议的,
facet.*
在这里会有所帮助

由于数据中没有“响应者”的概念,我将使用
tidyr::crossing
盲目复制数据

另外,为了演示,我删除了
theme\u classic
以突出显示窗格。(使用它没有问题,我只是想弄清楚区别。)

库(dplyr)
图书馆(GG2)
库(ggrepel)#几何体_文本_repel
图书馆(三天)#十字路口
df%>%
突变(净频率=ifelse(CNV==“删除”、-改变百分比/100、改变百分比/100))%>%
交叉点(.tible(resp=c(“响应者”、“非响应者”))%>%
ggplot(.aes(x=log10\u p值,y=净频率))+
几何点(aes(大小=改变百分比,颜色=对数10值))+
几何文本排斥(aes(标签=ifelse(log10\u pvalue>-log10(0.05),基因“”),力=10)+
geom_hline(yintercept=0,lty=2)+
面_包裹(.~resp)


至于“两组颜色不同”,你需要什么并不清楚。如果您希望(例如)响应者的色标为“蓝色”,非响应者的色标为“红色”,那么请查看ggplot扩展包,例如
ggnewscale
ggrelayer
。(它们没有经过烘焙。)

更新的包括OP的更新数据,现在分为两组。
编辑2根据注释删除OP的原始
geom_-repel
过滤器

这里有一种方法,它通过使
CNV==“deletation”
log10\u pvalue的所有值均为负值来创建发散色阶。配合
facet\u wrap()
,这就达到了您的目标

df%>%
变异(净频率=ifelse(CNV==“删除”、-改变百分比/100、改变百分比/100),
log10\u pvalue=if\u else(CNV==“删除”,-log10\u pvalue,log10\u pvalue))%>%
ggplot(aes(x=对数10μp值,y=净频率,颜色=对数10μp值))+
几何点(aes(尺寸=改变百分比))+
几何文本排斥(aes(标签=基因),力=10)+
geom_hline(yintercept=0,lty=2)+
刻度、颜色、蒸馏器(type=“div”)+
主题(经典)+
面_包裹(~组)

更新的包括OP的更新数据,现在分为两组。
编辑2根据注释删除OP的原始
geom_-repel
过滤器

这里有一种方法,它通过使
CNV==“deletation”
log10\u pvalue的所有值均为负值来创建发散色阶。配合
facet\u wrap()
,这就达到了您的目标

df%>%
变异(净频率=ifelse(CNV==“删除”、-改变百分比/100、改变百分比/100),
log10\u pvalue=if\u else(CNV==“删除”,-log10\u pvalue,log10\u pvalue))%>%
ggplot(aes(x=对数10μp值,y=净频率,颜色=对数10μp值))+
几何点(aes(尺寸=改变百分比))+
几何文本排斥(aes(标签=基因),力=10)+
geom_hline(yintercept=0,lty=2)+
刻度、颜色、蒸馏器(type=“div”)+
主题(经典)+
面_包裹(~组)

看一看
?facet\u wrap
?facet\u grid
是的,但我不知道如何在数据框中定义group1和group2,并在每个组中要求不同的颜色进行放大和删除,例如group1用浅蓝色删除,group2用深蓝色删除。您可以解释更多关于“响应者”的内容吗和“无响应者”在您的数据中表示?这些与您所称的
group1
group2
相同吗?我在你发布的
df
中没有看到类似的内容。我知道你在说你不知道如何在数据中定义group1/2,但也不清楚你的意思是什么。您知道
df
中的哪些条目属于这两个组吗?是的,它们是group1和group2。df仅适用于组1,组2具有相同的数据,但不粘贴在此处提供问题的解决方案需要将
group1
group2
包含在相同的数据框中。如果您可以编辑您的帖子以提供完全代表您的问题空间的数据,这将非常有用。请查看
?facet\u wrap
?facet\u grid
是的,但我不知道如何在数据框a中定义group1和group2