【问题标题】:R: In ggplot2, how do you combine linetype and color when they're set by different variables?R:在ggplot2中,当线型和颜色由不同的变量设置时,你如何组合它们?
【发布时间】:2014-12-10 01:30:46
【问题描述】:

我有一个折线图,其中线型由一个变量(在本例中为 SampleType)设置,颜色由另一个变量(Sample)设置。对于这些数据,我希望图例将这两个变量组合到一个图例条目中,而不是一个条目用于颜色,一个用于线型。这是我的示例数据: EIC data

这里是我到目前为止想出的代码和情节:

 EIC <- read.csv("EIC data.csv")
 ggplot(EIC, aes(x = Time, y = Counts, color = Sample, linetype = SampleType)) +
        geom_line()

我真正想要的是图例只显示“样本”,然后为每个样本显示适当的颜色和线型,因此对于标准来说它是实心的,对于临床样本来说是虚线的,每个样本都会成为不同的颜色。我喜欢 ggplot2,所以我更愿意继续使用 ggplot2 来做到这一点。我尝试将这样的 scale_linetype_manual 添加到代码中:

 scale_linetype_manual(values = c(rep("solid", 3), rep("dashed", 2)))

但这不会改变图例或图表。我还尝试根据样本是临床样本还是标准,在每行中创建一个带有“实心”或“虚线”的新列,然后使用 scale_linetype_identity(),但是虽然这对图表有效,但它不是更改图例,因为我仍在将颜色映射到一个变量,将线型映射到第二个。

我使用的是 R 版本 3.0.2 和 ggplot2_1.0.0。

提前感谢您的任何想法!

【问题讨论】:

    标签: r plot ggplot2


    【解决方案1】:

    对color= 和linetype= 使用变量Sample,然后使用scale_linetype_manual() 获得所需的线型。

    ggplot(EIC, aes(x = Time, y = Counts, color = Sample, linetype = Sample)) +
          geom_line()+scale_linetype_manual(values = c(rep("solid", 3), rep("dashed", 2)))
    

    【讨论】:

    • 这比我想象的还要简单,而且效果很好!谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-17
    • 1970-01-01
    • 2018-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-17
    相关资源
    最近更新 更多