我创建了一个从csv文件中绘制数据的函数。
我想从调用函数时使用的变量名称中获取图例中的标签。
使用下面的代码,names(dataPlot1)
在图例中使用名称“temp1”“temp2”“temp3”。我想把它变成“x”,“y”,“z”。我怎么能这样做?
temperature <- function(temp1,temp2,temp3)
{
dataPlot1 <- data.frame(temp1,temp2,temp3)
matplot(dataPlot1,axes=T,frame=T,type="l",
xlab="time (hour)",ylab="temperature(C)",
main=names(dataPlot1))
lines(dataPlot1[1],lty=1,col="blue")
lines(dataPlot1[2],lty=2,col="red")
lines(dataPlot1[3],lty=2,col="forestgreen")
legend("topright",names(dataPlot1),lty=c(1,2,2),
col=c("blue","red","forestgreen"))
}
temperature(x,y,z)
答案 0 :(得分:1)
也许这就是:
temperature <- function(temp1,temp2,temp3)
{ t1 <- deparse(substitute(temp1))
t2 <- deparse(substitute(temp2))
t3 <- deparse(substitute(temp3))
dataPlot1 <- data.frame(temp1,temp2,temp3)
matplot(dataPlot1,axes=T,frame=T,type="l",
xlab="time (hour)",ylab="temperature(C)",
main=names(dataPlot1))
lines(dataPlot1[1],lty=1,col="blue")
lines(dataPlot1[2],lty=2,col="red")
lines(dataPlot1[3],lty=2,col="forestgreen")
legend("topright", c(t1,t2,t3), lty=c(1,2,2),
col=c("blue","red","forestgreen"))
答案 1 :(得分:0)
您有几种选择:
dataPlot1 <- data.frame(x=temp1, y=temp2, z=temp3)
legend=
来电提供legend()
参数所需的文字。legtxt=c("x","y","z")
并将其传递给legend
。