使用绘图功能在R中绘图

时间:2017-09-11 17:28:24

标签: r plot

我试图使用循环绘制少量图形。我现在详细描述。

首先,我有一个计算y变量的函数(垂直轴称为effect

effect<- function (x, y){
  exp(-0.35*log(x)
      +0.17*log(y)
      -0.36*sqrt(log(x)*log(y)/100))
}

现在我运行以下代码并使用par选项绘制同一图表中的线条。我使用axis=FALSExlab=""来获取没有标签的情节。我这样做,以便每次循环运行时都不会重写我的标签,看起来很难看。

for (levels in seq(exp(8), exp(10), length.out = 5)){
  x = seq(exp(1),exp(10), length.out = 20)
  prc= effect(levels,x)
  plot(x, prc,xlim = c(0,max(x)*1.05), ylim=c(0.0,0.3),
       type="o", xlab = "",ylab = "",  pch = 16, 
       col = "dark blue", lwd = 2, cex = 1, axes = F)
  label = as.integer(levels) #x variable
  text(max(x)*1.03,max(prc), label )
  par(new=TRUE)
}

最后,我这次使用xlabylab选项复制了绘图命令

plot(x, prc, xlab = "X-label", ylab = "effect", 
     xlim = c(0,max(x)*1.05), ylim = c(0,0.3), 
     type="l", col ='blue')

我使用复杂的方程在类似的行中有其他几个图。我有两个问题:

  1. 是否有更好的方法可以使用更平滑的线条获得相同的情节?
  2. 是否有一个更简单的选项,几行就可以实现相同的目标,我可以在右边的每一行放置文本(关卡),背面有白色背景?
  3. Output of the above program

1 个答案:

答案 0 :(得分:0)

我认为使用情节功能是单调乏味且耗时的。所以,我终于使用了ggplot2进行绘图。在线提供了一些帮助,我已经使用过了。