【问题标题】:How to plot two dashed regression lines using GGPlot如何使用 GGPlot 绘制两条虚线回归线
【发布时间】:2019-11-12 05:19:52
【问题描述】:

我目前正在使用 ggplot 函数尝试两条虚线。该图显示了属于两个不同因子组的两条回归线。我已经能够使其中一条线变成虚线,但是我无法让另一条线变成虚线。任何帮助将不胜感激。

coli_means  %>% 
  ggplot(aes(time, mean_heartrate, group = treatment)) + 
  geom_point( aes(group = treatment, color = treatment)) + 
  geom_smooth(aes(method = "loess", linetype = treatment, se = FALSE, 
                  group = treatment, color = treatment, show.legend = TRUE))

我觉得我缺少一个简单的输入。谢谢。

【问题讨论】:

  • 1) 如果您反复使用 colorgroup,请将它们放在对 ggplot 的原始调用中,然后从其他任何地方删除它们。 2)然后就做geom_smooth(method = "loess", linetype = "dashed", se = FALSE, show.legend = TRUE)
  • 为了扩展@RuiBarradas 的评论,如果linetype = … aes() 中,它指的是一种分解数据的方法(即aes(linetype=treatment) 将分配列处理中不同因素的不同线型)如果它在aes()之外外部它将更改该层创建的所有线的线型,无论它们的组/因素如何

标签: r ggplot2 rstudio regression


【解决方案1】:

你需要做的是使用scale_linetype_manual(),然后告诉它两个治疗组都需要一条虚线。

让我们从一个可重现的例子开始:

# reproducible example:
set.seed(0)
time <- rep(1:100,2)
treatment <- c(rep("A",100), rep("B",100))
mean_heartrate <- c(rnorm(100,60,2), rnorm(100,80,2))

coli_means <- data.frame(time, treatment, mean_heartrate)

# ggplot
coli_means  %>% 
  ggplot(aes(x = time, y = mean_heartrate)) + 
  geom_point(aes(color = treatment)) + 
  geom_smooth(aes(linetype = treatment, color = treatment))+
  scale_linetype_manual(values = c('dashed','dashed'))

【讨论】:

    猜你喜欢
    • 2017-01-21
    • 2019-10-20
    • 2021-05-31
    • 2019-03-06
    • 2016-09-04
    • 2014-11-03
    • 1970-01-01
    • 2017-02-21
    • 1970-01-01
    相关资源
    最近更新 更多