我试图绘制四种不同的向量系列:
1)adm 7 9 46 11 52 29 25 62
2)轻拍 35 29 24 19 22 21 42 23 34 12 28 17 11 15 16 14 27 20 8 38 10 10 14 22 22 23 24 24 24
3)nur 41 49 42 59 58 23 35 31 20 44 56 29 57 50 33 46 28 17 15 17 28 44 46 49 50 57 58
4)med 23 51 44 54 26 15 33 41 34 42 39
我尝试以下方法在同一图上绘制多个数据系列:
plot(pat,type="l",xlab="Degree",ylab="Count",col="blue4")
par(new=T)
plot(adm,type="l",xlab="Degree",ylab="Count",col="red4")
par(new=T)
plot(med,type="l",xlab="Degree",ylab="Count",col="green4")
par(new=T)
plot(nur,type="l",xlab="Degree",ylab="Count",col="black")
par(new=F)
我得到了这个......
我需要帮助的两件事是:
1)为每条线与其数据源匹配的图形创建一个图例。
2)修复图中的重叠标签(我的意思是x和y轴上的值)
答案 0 :(得分:3)
如果将值存储在列表中
,会更容易一些dd<-list(
adm=c(7,9,46,11,52,29,25,62),
pat=c(35,29,24,19,22,21,42,23,34,12,28,17,11,15,16,
14,27,20,8,38,10,10,14,22,22,23,24,24,24),
nur=c(41,49,42,59,58,23,35,31,20,44,56,29,57,50,33,
46,28,17,15,17,28,44,46,49,50,57,58),
med =c(23,51,44,54,26,15,33,41,34,42,39)
)
ylim=c(0, max(sapply(dd, range)))
xlim=c(0, max(sapply(dd, length)))
cols<-c("blue4","red4","green4","black")
plot(dd[[1]], xlab="Degree", ylab="Count", col=cols[1], type="l", xlim=xlim, ylim=ylim)
for(i in 2:4) {
lines(dd[[i]], col=cols[i])
}
legend(x=25,50, names(dd), col=cols, lty=1)
作为一般规则,您只需拨打plot
一次;然后,如果您需要添加数据,最好使用不重新绘制轴的points()
或lines()
。
像lattice
这样的图书馆倾向于使分组图更容易
library(lattice)
xyplot(values~idx, transform(stack(dd), idx=ave(values, ind, FUN=seq_along)),
group=ind, auto.key=list(lines=T, points=F, columns=2), type="l")