как исправить положение кода в Sweave? - PullRequest
0 голосов
/ 05 апреля 2020

Я использую Sweave для рисования графиков, и я хочу исправить положение кода R без фиксирования положения графиков, то есть я хотел бы сохранить положение кода в тексте, но иметь плавающие графики, что я должен делать? Спасибо

Это говорит о том, что неясно, поэтому я поставил туда код:

text before the figure

\begin{figure}
<<smokefig, fig.width=3, fig.height=3>>=
tabSmoke<-table(ps$smoke)[2:5]
par(mar = c(2, 4.1, 0.1, 0.1))
with(ps,barplot(100*tabSmoke/sum(tabSmoke),ylim=c(0, 110), las = 2, 
                cex.axis = 0.75,cex.names = 0.75,col = c("pink","lightblue")))
@
\caption{Pourcentages des fumeurs et non-fumeurs selon les quatre modalités}
\end{figure}

text after the figure

я хочу, чтобы между строкой был виден R-код, например

text before the figure

tabSmoke<-table(ps$smoke)[2:5]
par(mar = c(2, 4.1, 0.1, 0.1))
with(ps,barplot(100*tabSmoke/sum(tabSmoke),ylim=c(0, 110), las = 2, 
                cex.axis = 0.75,cex.names = 0.75,col = c("pink","lightblue")))

text afther the figure

и тогда цифра может появиться там, где она хочет
, но оказывается, что код плавает вместе с цифрой, и они появляются вместе на следующей странице, например так:
вывод строк кода
вывод рисунка

Это то, что я поместил в заголовок, на случай, если это может быть полезно

\documentclass[10pt]{article}
\usepackage{geometry}
\geometry{a4paper,scale=0.75}
\author{me}
\title{title}
\begin{document}

1 Ответ

0 голосов
/ 07 апреля 2020

Вы говорите, что используете Sweave. Из того, что вы опубликовали, не ясно, имеете ли вы в виду функцию Sweave() в R или формат Sweave в knitr. В последнем намного проще; Вы должны переключиться на него, если вы его еще не используете.

Вот как можно написать свою фигуру, чтобы она отображалась так, как вы хотите. Основное изменение заключается в использовании fig.cap для указания заголовка в заголовке чанка; тогда knitr автоматически запишет среду LaTeX для рисунка, добавьте заголовок и т. д. c.

text before the figure

<<smokefig, fig.width=3, fig.height=3, fig.cap = "Pourcentages des fumeurs et non-fumeurs selon les quatre modalités">>=
tabSmoke<-table(ps$smoke)[2:5]
par(mar = c(2, 4.1, 0.1, 0.1))
with(ps,barplot(100*tabSmoke/sum(tabSmoke),ylim=c(0, 110), las = 2, 
                cex.axis = 0.75,cex.names = 0.75,col = c("pink","lightblue")))
@

text after the figure

Если вы хотите сделать это в Sweave(), вы помещаете код вне графическое окружение, создающее файл и не включающее его; затем используйте \includegraphics в среде рисунка, чтобы включить фигуру. Определенно больше работы и больше подвержено ошибкам, так что не делайте этого. Переключиться на knitr.

...