我正在编写R
脚本,这些脚本在我从终端执行的一系列命令中只起很小的作用。基本上,我在 Python 脚本中进行大部分数据操作,然后将输出通过管道传输到我的 R 脚本进行绘图。因此,我从终端执行类似于$python whatever.py | R CMD BATCH do_some_plotting.R
. 到目前为止,这个工作流程对我来说一直运行良好,尽管我现在已经到了一个地步,我想在同一个图上叠加多个直方图,这是受Stackoverflow 上另一个用户问题的答案的启发。
在我的 R 脚本中,我的绘图代码如下所示:
pdf("my_output.pdf")
plot(hist(d$original,breaks="FD",prob=TRUE), col=rgb(0,0,1,1/4),xlim=c(0,4000),main="original - This plot is in beta")
plot(hist(d$minus_thirty_minutes,breaks="FD",prob=TRUE), col=rgb(1,0,0,1/4),add=T,xlim=c(0,4000),main="minus_thirty_minutes - This plot is in beta")
值得注意的是,我正在使用add=T
,这可能是为了指定第二个情节应该覆盖在第一个情节之上。当我的脚本完成后,我得到的结果不是两个相互重叠的直方图,而是一个 3 页的 PDF,其中 3 个单独的图包含标题:
i)直方图d$original
ii)原始图 - 此图处于测试阶段
iii)直方图d$minus_thirty_minutes
所以这里有两点我想澄清一下。首先,即使图没有重叠,我也希望只有 2 页的 PDF,而不是 3 页的 PDF。有人可以解释为什么我会得到一个 3 页的 PDF 吗?其次,我是否可以在这里进行修正以仅绘制两个直方图,并将它们都绘制在同一个图上(即 1 页 PDF)?
我在第一段中链接到的另一个 Stackoverflow 问题/答案确实提到并非所有设备都支持 alpha 混合,所以我很好奇这是否与它有关。无论哪种方式,最好知道R
我的问题是否有基于 - 的解决方案,或者我是否必须将我的数据传输到不同的语言/绘图引擎中。