3

我需要绘制三条线(在一张图上),每条线代表一个实验室团队的数据(两个变量/团队)。理想情况下,该图应该看起来很美观(因此使用了 ggplot2!),但在形式上与下面显示的折线图相似。我不明白如何使用 gggplot2 库将多条线绘制到单个图形上。我目前对 ggplot2 库的了解/技能很低,但我在下面列出了我刚刚起步的努力。

http://www.harding.edu/fmccown/r/#linecharts

编辑:每一行由两个看起来像这样的向量构成:

temp = c(4, 25, 50, 85, 100) 
enzyme_activity = c(0.543, 0.788, 0.990, 0.898, 0.882) 

x 轴上的 temp 变量和每条线的颜色不同,因此可以区分它们。

编辑2:

amyA = c(0.091, 0.147, 0.202, 0.236, 0.074)
temp = c(4, 23, 37, 65, 100)
df = data.frame(temp, amyA)

ggplot(df, aes(x = temp, y = amyA, col = 'blue')) + geom_line()

第二次编辑中的代码没有生成蓝线,图例完全错误。如果我用不同的数据重复两次 ggplot 调用,则只绘制一条线。

4

2 回答 2

5

关键是在绘图之前组织您的数据,以便factor在数据框中有一列指示每组x,y值的单独行。例如:

set.seed(1)
df1 <- data.frame(e1 = sort(runif(5, 0.05, 0.25)),
                  e2 = sort(runif(5, 0.05, 0.25)),
                  e3 = sort(runif(5, 0.05, 0.25)),
                  t1 = sort(runif(5, 1, 100)),
                  t2 = sort(runif(5, 1, 100)),
                  t3 = sort(runif(5, 1, 100))
                  )
### reshape this to give a column indicating group
df2 <- with(df1,
        as.data.frame(cbind( c(t1, t2, t3),
                            c(e1, e2, e3),
                            rep(seq(3), each=5) )
                      ))
colnames(df2) <- c("temp","activity","team")
df2$team <- as.factor(df2$team)

然后

library(ggplot2)
ggplot(df2, aes(x=temp, y=activity, col=team)) + geom_line()

给予:在此处输入图像描述

于 2013-09-25T22:52:15.443 回答
2

我会做类似的事情:

library(ggplot2)
ggplot(mtcars, aes(x = wt, y = mpg, color = as.factor(cyl))) + geom_line()

在此处输入图像描述

如果您需要更具体的建议,我建议您扩展您的示例,并包含一些示例数据,并提供有关可视化应该说明的更多详细信息。

于 2013-09-25T18:03:36.853 回答