【问题标题】:Error when generating pdf using script in R使用 R 中的脚本生成 pdf 时出错
【发布时间】:2010-12-20 08:12:19
【问题描述】:

我正在使用 R 循环遍历数据框的列并绘制结果分析图。脚本运行时我没有收到任何错误,但它会生成无法打开的 pdf。

如果我运行脚本的内容,它可以正常工作。我想知道它的循环速度是否有问题,所以我试图强制它暂停。这似乎没有什么不同。我对人们提出的任何建议都很感兴趣,而且我对 R 也很陌生,因此也欢迎关于如何改进该方法的建议。谢谢。

for (i in 2:22) {

  # Organise data
  pop_den_z = subset(pop_den, pop_den[i] != "0")  # Remove zeros
  y = pop_den_z[,i]        # Get y col
  x = pop_den_z[,1]        # get x col
  y = log(y)               # Log transform

  # Regression
  lm.0 = lm(formula = y ~ x)                # make linear model
  inter = summary(lm.0)$coefficients[1,1]   # Get intercept
  slop = summary(lm.0)$coefficients[2,1]    # Get slope

  # Write to File
  a = c(i, inter, slop)
  write(a, file = "C:/pop_den_coef.txt", ncolumns = 3, append = TRUE, sep = ",")

  ## Setup pdf
  string = paste("C:/LEED/results/Images/R_graphs/Pop_den", paste(i-2), "City.pdf")
  pdf(string, height = 6, width = 9)

  p <- qplot(
    x, y,
    xlab = "Radius [km]",
    ylab = "Population Density [log(people/km)]",
    xlim = x_range,
    main = "Analysis of Cities"
  )

  # geom_abline(intercept,slope)
  p + geom_abline(intercept = inter, slope = slop, colour = "red", size = 1)

  Sys.sleep(5)

  ### close the PDF file
  dev.off()
}

【问题讨论】:

    标签: pdf r statistics graph


    【解决方案1】:

    该行应该是

    print(p + geom_abline(intercept = inter, slope = slop, colour = "red", size = 1))
    

    在 pdf 设备中,ggplot(和 lattice)仅在显式打印时写入文件。

    【讨论】:

    • 只是lattice和ggplot2,和grid并没有什么关系。
    • 谢谢你,成功了。我没有意识到它需要明确打印。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-14
    • 1970-01-01
    • 2011-12-26
    • 1970-01-01
    相关资源
    最近更新 更多