【问题标题】:Blank file when saving ggplot2 bar plot into pdf (windows 7) [duplicate]将ggplot2条形图保存为pdf时的空白文件(Windows 7)[重复]
【发布时间】:2013-01-23 07:02:07
【问题描述】:

可能重复:
Plotting and saving PDFs in a loop

新手的问题。 我的制表符分隔输入数据如下所示:

x y
1 50
2 25
3 60
4 25
5 90
6 100

这是我的代码文件“code.R”:

data <- read.table("input",header=T,sep="\t")
pdf("output.pdf")
ggplot (data,aes(x=x,y=y) + geom_bar(stat="identity")
dev.off()

我使用以下命令运行代码,但没有收到任何错误消息:

source("code.R")

代码生成“output.pdf”文件但它是空白的(当我想打开它时出错)。

当我在我的 R 终端中手动输入上述代码的第一行和第二行时,图形在图形设备中看起来是正确的。

当我在文件中写入以下行并运行该文件时,什么也没有发生(没有错误,没有图形设备窗口)

data <- read.table("input",header=T,sep="\t")
ggplot (data,aes(x=x,y=y)) + geom_bar(stat="identity")

输入文件和代码文件的行尾都是 windows 格式。 我也试过data &lt;- as.data.frame(read.table(...)),但它没有任何改变。 我真的看不出我的代码有什么问题...

任何建议和解释都会很棒! 谢谢!

【问题讨论】:

  • 重复。阅读 R-FAQ 7.22

标签: r ggplot2


【解决方案1】:

您的 ggplot 调用缺少右括号。

这一行:

ggplot (data,aes(x=x,y=y) + geom_bar(stat="identity")

应该是:

ggplot (data,aes(x=x,y=y)) + geom_bar(stat="identity")

或者你可以尝试 ggsave() 而不是 pdf() dev.off() 像这样:

ggplot (data,aes(x=x,y=y)) + geom_bar(stat="identity")
ggsave("output.pdf")

不要混合使用这两种方法。

【讨论】:

  • 没有解释为什么他得到一个空白情节。
  • 错字对不起。问题来自其他原因,因为当我在 R 终端中手动输入代码以在图形设备中输出绘图时,它会起作用。
  • 我在编辑中尝试过,它可以工作。如果没有编辑,我会得到与描述的 lqdo2000 相同的行为。
  • 当然我在read.table之前设置了我的工作目录。 setwd("/Path/to/directory/data/is/in/")
  • @Nathan G:它适用于ggsave。非常感谢!
猜你喜欢
  • 2013-05-22
  • 1970-01-01
  • 1970-01-01
  • 2011-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-23
相关资源
最近更新 更多