knitr使用seqHMM包中的ssplot添加一个空图

时间:2016-08-05 21:37:00

标签: r latex knitr

我在RStudio中有以下块:

this.innerHTML = 'Chosen';

<<sumfig,dependson='data',fig.cap="Summary of sequences">>= ssplot(smult) @ ssplot包中的一个函数,用于创建频率图,seqHMM是我的序列数据。

当我运行我的代码时,我在我的pdf中得到两个数字:第一个是带有标签smult的空白图,第二个是带有标签{fig:sumfig1}的真实图形。我对这个包中的其他图有类似的经验。我的文件中还有其他一些图表,其他包也可以。

包装有问题还是我做错了什么?

1 个答案:

答案 0 :(得分:1)

此问题的根源似乎是seqHMM:ssplot,而不是knitr:即使在互动版本中,ssplot也会生成两个图,一个空图和实际图。

如果在ssplot的块中只生成了一个绘图,则chunk option fig.keep = "last"可用于忽略第一个绘图并仅显示第二个(最后一个)。< / p>

\documentclass{article}
\begin{document}

<<echo = FALSE, message = FALSE, fig.keep = "last">>=
library(seqHMM)

# from ?ssplot
data("biofam3c")

# Creating sequence objects
child_seq <- seqdef(biofam3c$children, start = 15)
marr_seq <- seqdef(biofam3c$married, start = 15)
left_seq <- seqdef(biofam3c$left, start = 15)

## Choosing colors
attr(child_seq, "cpal") <- c("#66C2A5", "#FC8D62")
attr(marr_seq, "cpal") <- c("#AB82FF", "#E6AB02", "#E7298A")
attr(left_seq, "cpal") <- c("#A6CEE3", "#E31A1C")


# Plotting state distribution plots of observations
ssplot(list("Children" = child_seq, "Marriage" = marr_seq,
            "Residence" = left_seq))
@

\end{document}

截至knitr 1.14(当前开发版本,GitHub上提供),您还可以使用fig.keep指定要保留的图表:{ {1}}将保留第一个和第三个图。