2016-08-05 63 views
1

與ssplot空數字我在RStudio以下組塊:knitr將從seqHMM包

<<sumfig,dependson='data',fig.cap="Summary of sequences">>= 
ssplot(smult) 
@ 

ssplotseqHMM包它創建了一個頻率圖和smult是我的序列數據的功能。

當我運行我的代碼時,我得到兩個數字在我的pdf中:第一個是空的白色數字,標籤爲{fig:sumfig1},第二個是標籤爲{fig:sumfig1}的真實數字。我與這個軟件包中的其他地塊有類似的經歷。我的文件中還有其他一些圖表,其他包可以正常工作。

包裝有問題還是我做錯了什麼?

回答

1

此問題的根源似乎是seqHMM:ssplot,而不是knitr:即使在交互式sesion中,ssplot也會生成兩個圖,即空白圖和實際圖。

如果只有一個塊在ssplot中生成,則可以使用chunk optionfig.keep = "last"忽略第一個圖並僅顯示第二個(最後一個)圖。

\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} 

由於knitr1.14(當前開發版本,可在GitHub),你也可以使用fig.keep指定哪些地塊正是你想要保留:fig.keep = c(1,3)將保持第一和第三的情節。

+0

是的,問題是與包。 'fig.keep ='last''解決了這個問題。如果我們在塊中有兩個以上的圖塊,是否有任何塊選項可用於指定必須打印哪些圖塊? – Milad

+0

根據fig.keep的文件,沒有。不過,我認爲這可能符合有用的功能要求。我明天會添加一個部分解決方法。 –

+0

更新:這是[功能要求](https://github.com/yihui/knitr/issues/1265)。 –