首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将图例手动添加到ggplot中

如何将图例手动添加到ggplot中
EN

Stack Overflow用户
提问于 2020-09-20 08:22:07
回答 1查看 1.4K关注 0票数 0

我想手动添加一个图例到r。我的代码的问题是它没有显示正确的符号(蓝色点,蓝色虚线和红色实线)。这是密码和情节。

代码语言:javascript
复制
predict_ID1.4.5.6.7 <- predict(lm_mRNATime, ID1.4.5.6.7)
ID1.4.5.6.7$predicted_mRNA <- predict_ID1.4.5.6.7
colors <- c("data" = "Blue", "predicted_mRNA" = "red","fit"="Blue")
ggplot( data = ID1.4.5.6.7, aes(x=Time,y=mRNA,color="data")) +
  geom_point()+
  scale_x_discrete(limits=c('0','20','40','60','120'))+
  labs(title="ID-1,ID-4,ID-5,ID-6,ID-7",y="mRNA", x="Time [min]", color = "Legend") +
  scale_color_manual(values = colors)+
  geom_line(aes(x=Time,y=predicted_mRNA,color="predicted_mRNA"),lwd=1.3)+
  geom_smooth(method = "lm",aes(color="fit",lty=2),se=TRUE,lty=2)+
  scale_color_manual(values = colors)+
theme(plot.title = element_text(hjust = 0.5),plot.subtitle = element_text(hjust = 0.5)) 

如何修改代码以获得与图例中的情节相关联的符号?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-20 09:24:52

这里最困难的部分是为演示目的重新创建数据集。最好增加一个可重复的例子。无论如何,下面的内容应该是接近的:

代码语言:javascript
复制
library(ggplot2)

set.seed(123)

ID1.4.5.6.7 <- data.frame(Time = c(rep(1, 3), 
                                   rep(c(2, 3, 4, 5), each = 17)),
                          mRNA = c(rnorm(3, 0.1, 0.25), 
                                   rnorm(17, 0, 0.25),
                                   rnorm(17, -0.04, 0.25), 
                                   rnorm(17, -0.08, 0.25),
                                   rnorm(17, -0.12, 0.25)))

lm_mRNATime <- lm(mRNA ~ Time, data = ID1.4.5.6.7)

现在,我们通过添加一个自定义颜色指南来运行您的代码:

代码语言:javascript
复制
predict_ID1.4.5.6.7 <- predict(lm_mRNATime, ID1.4.5.6.7)
ID1.4.5.6.7$predicted_mRNA <- predict_ID1.4.5.6.7

colors <- c("data" = "Blue", "predicted_mRNA" = "red", "fit" = "Blue")

p <-  ggplot( data = ID1.4.5.6.7, aes(x = Time, y = mRNA, color = "data")) +
        geom_point() +
        geom_line(aes(x = Time, y = predicted_mRNA, color = "predicted_mRNA"), 
                  lwd = 1.3) +
        geom_smooth(method = "lm", aes(color = "fit", lty = 2), 
                    se = TRUE, lty = 2) +
        scale_x_discrete(limits = c('0', '20', '40', '60', '120')) +
        scale_color_manual(values = colors) +
        labs(title = "ID-1, ID-4, ID-5, ID-6, ID-7", 
             y = "mRNA", x = "Time [min]", color = "Legend") +
        guides(color = guide_legend(
                       override.aes = list(shape = c(16, NA, NA), 
                                           linetype = c(NA, 2, 1)))) +
        theme(plot.title    = element_text(hjust = 0.5), 
              plot.subtitle = element_text(hjust = 0.5),
              legend.key.width = unit(30, "points"))

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

https://stackoverflow.com/questions/63976953

复制
相关文章

相似问题

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