R:在ggplot2中,当它们由不同的变量设置时,如何组合线型和颜色?

Lau*_*raS 1 plot r ggplot2

我有一个折线图,其中线型由一个变量(在本例中为SampleType)设置,颜色由另一个变量(Sample)设置.对于这些数据,如果图例将这两个变量合并到一个图例条目中,而不是将一个条目用于颜色而一个条目用于线型,我会喜欢它.以下是我的示例数据: EIC数据

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

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

提取离子色谱图的线图

我真正喜欢的是传说只显示"Sample",然后是每个样本的相应颜色和线型,因此它对标准来说是固定的,并且对于临床样本来说是虚线的,每个样本都是不同的颜色.我喜欢ggplot2,所以我更愿意继续使用ggplot2来做到这一点.我已经尝试将scale_linetype_manual添加到代码中:

 scale_linetype_manual(values = c(rep("solid", 3), rep("dashed", 2)))
Run Code Online (Sandbox Code Playgroud)

但这并没有改变图例或图表.我还尝试在每行中创建一个"solid"或"dashed"的新列,具体取决于样本是临床样本还是标准样本,然后使用scale_linetype_identity(),但是虽然这对图表起作用,但它不是更改图例,因为我仍然将颜色映射到一个变量,将线型映射到第二个.

我正在使用R版本3.0.2和ggplot2_1.0.0.

提前感谢任何想法!

Did*_*rts 6

使用可变Sample两种- color=linetype=,然后用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)))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述