我想在ipython笔记本中使用ggplot。我使用rmagic将数组传入R并将其绘制到输出单元格。但是,将绘图保存到文件似乎不起作用。
%load_ext rpy2.ipython
新细胞。我的python数据称为数据。
%%R -i data
library(ggplot2)
df=data.frame(x=seq(1,length(data)),y=data)
pdf('plot.pdf')
ggplot(data=df, aes(x=x,y=y)) + geom_point()
dev.off()
当我点击文件plot.pdf时,我收到错误'文件无法打开。它可能已损坏或使用预览无法识别的文件格式。'
答案 0 :(得分:3)
如果打开特定设备(此处为PDF文件),则必须调用df=data.frame(x=seq(1,length(data)),y=data)
pdf('plot.pdf')
p <- ggplot(data=df, aes(x=x,y=y)) + geom_point()
print(p)
dev.off()
(就像在非交互式R中使用该代码一样)。
{{1}}
这可能比对ggsave的调用更明确,ggsave似乎猜测在有多个图时应该绘制什么。
答案 1 :(得分:1)
试试这个:
df <- data.frame(x=seq(1,length(data)),y=data)
ggplot(data=df, aes(x=x,y=y)) + geom_point()
ggsave('plot.pdf', width=8.27, height= 11.69) #A4 size in inches
dev.off()