首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按主题选项将项目添加到图例

按主题选项将项目添加到图例
EN

Stack Overflow用户
提问于 2017-07-10 21:40:30
回答 2查看 499关注 0票数 1

我有一个数据框d,像这样:

代码语言:javascript
复制
d <- data.frame("name" = c("pippo","pluto","paperino"), 
"id" = c(1,2,3),"count" = c(10,20,30),
"pvalue"=c(0.01,0.02,0.05),
geneRatio=c(0.5,0.8,0.2),
type=c("KEGG","Reactome","Reactome"))

我使用ggplot库绘制了一个点图:

代码语言:javascript
复制
   ggplot(data = d,aes(geneRatio,name,size=count,colour = pvalue)) + 
   geom_point()+ 
   ggtitle("Significantly Pathways") + 
   xlab("Gene Ratio") + 
   ylab("Pathways")+ 
   theme(axis.text.y = element_text(color=d$type))

这就是目前的情节

我想添加到图例中的“类型”的信息包含在数据帧d。我想有一个新的项目,在图例中的颜色红色=反应和颜色black= KEGG

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-10 21:59:38

不是说这是个好主意,但是你可以添加一个无意义的geom来强制添加一个向导:

代码语言:javascript
复制
d <- data.frame("name" = c("pippo","pluto","paperino"), 
                "id" = c(1,2,3),
                "count" = c(10,20,30),
                "value"=c(0.01,0.02,0.05),
                geneRatio=c(0.5,0.8,0.2),
                type=c("KEGG","Reactome","Reactome")
                )

library(ggplot2)

ggplot(data = d, aes(geneRatio,name,colour = pvalue)) + 
    geom_point(aes(size=count))+ 
    geom_polygon(aes(geneRatio,name,fill = type)) +
    ggtitle("Significantly Pathways") + 
    xlab("Gene Ratio") + 
    ylab("Pathways") + 
    scale_fill_manual(values = c('Reactome'='red', 'KEGG'='black')) +
    theme(axis.text.y = element_text(color=d$type))

geom_polygon可能无法处理您的实际数据,并且您可能找不到合适的“无意义”geom。我同意@zx8754,一个方面会更清楚:

代码语言:javascript
复制
ggplot(data = d, aes(geneRatio,name,colour = pvalue)) + 
    geom_point(aes(size=count)) + 
    ggtitle("Significantly Pathways") + 
    xlab("Gene Ratio") + 
    ylab("Pathways") + 
    facet_grid(type ~ ., scales = 'free_y', switch = 'y')

票数 2
EN

Stack Overflow用户

发布于 2017-07-10 21:59:21

您可以使用annotate完成此操作,但这需要一点手动操作。

代码语言:javascript
复制
ggplot(data = d, aes(geneRatio, name, size = count, colour = pvalue)) + 
  geom_point() + 
  ggtitle("Significantly Pathways") + 
  xlab("Gene Ratio") + 
  ylab("Pathways")+ 
  theme(axis.text.y = element_text(color=d$type)) +
  annotate("text", x = 0.25, y = 3.5, label = "Reactome", color = "red") +
  annotate("text", x = 0.25, y = 3.4, label = "KEGG", color = "black")

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45013599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档