我有12种治疗方法,每种方法都有10次测量,我想根据时间进行测量。
我的CVS文件看起来像这样(只有几行,总行数是480,观察到48个)
- block observations soil oil days weight
- 1 1 1 untreated untreated 1 205
- 2 1 1 untreated untreated 2 200
- 3 1 1 untreated untreated 3 160
- 4 1 1 untreated untreated 4 120
- 5 1 1 untreated untreated 5 90
- 6 1 1 untreated untreated 6 50
- 7 1 1 untreated untreated 7 40
- 8 1 1 untreated untreated 8 35
- 9 1 1 untreated untreated 9 30
- 10 1 1 untreated untreated 10 15
我的R代码如下所示:
matplot(matrix(weightData$weight, 10, 15), type="l",col=rep(c(1,4), each=10), lwd=2,lty=rep(c(1,2), each=10),xlab="Days", ylab="Weights", cex.lab=1.4)
有没有办法让12条线有不同的颜色?
我也不确定我的传奇......我从课程教程中复制代码并尝试使用我自己的数据进行调整,但它并没有正确显示。
legend(legend = colnames 1,10,c("Untreated-Untreated", "Untreated-Metals", "Untreated-Metalsx2" etc etc...),lty=c(2,5), col=c(4,1))
输出看起来已经到了那里,但我仍然不确定如何修复我的代码以使其正确显示。
http://i.imgur.com/oaap6hE.png
非常感谢任何帮助。
答案 0 :(得分:0)
你真的需要matplot
吗?你试过ggplot2
吗?这就是我的建议。
1)首先安装ggplot2
用于绘图,reshape2
用于处理数据框:
install.packages(c('ggplot2','reshape2'))
library(ggplot2)
library(reshape2)
2)现在我们“融化”你的CSV数据帧。我无法理解您的 id变量是什么,但我认为它的所有变量都是如此:阻止,观察,土壤< / em>,石油和天。
我们将其放置为id.vars
。剩下的(权重)将是measure.vars
(有关融化文档的更多信息类型?melt
)。
mdf <- melt(mdf, id.vars=c("block", "observations", "soil", "oil", "days"), value.name="Weight")
3)最后我们使用ggplot2
绘图。这是一个非常简单的示例,观察采用颜色:
ggplot(data=mdf, aes(x=days, y=Weight, group = variable, colour = observations)) +
geom_line()
希望它有所帮助!