Меня немного беспокоит поведение вязальщицы. Рабочий пример должен отображать 4 графика, каждый из которых показывает одни и те же данные, используя 2 разных метода построения графиков.
Преамбула:
\documentclass{article}
Первые два графика создаются с помощью команды plot R-base:
<<one.one,fig.width=4,fig.height=3,fil.align='center',fig.show='asis'>>=
par(mar=c(4,4,1,1),mgp=c(2,1,0),cex=0.8)
plot(cars,pch=20,col='darkgray')
@
<<one.two,fig.width=4,fig.height=3,fil.align='center',fig.show='asis'>>=
par(mar=c(4,4,1,1),mgp=c(2,1,0),cex=0.8)
plot(cars,pch=18,col='darkgray')
@
Затем выходные данные задаются (удалены):
Для того же графика с ggplot2 примеры кода:
<<two.one,fig.width=4,fig.height=3,fil.align='center',fig.show='asis'>>=
library(ggplot2)
test1<-ggplot(cars,aes(x=speed,y=dist))
test2<-test1+geom_smooth(method="lm",se=FALSE,color='red',data=fit)
test3<-test2+
ggtitle("") +
geom_point(size=1,colour='red')
test3
@
<<two.two,fig.width=4,fig.height=3,fil.align='center',fig.show='asis'>>=
test1<-ggplot(cars,aes(x=speed,y=dist))
test2<-test1+geom_smooth(method="lm",se=FALSE,color='red',data=fit)
test3<-test2+
ggtitle("") +
geom_point(size=1,colour='red',shape=3)
test3
@
И выходы (удалены):
Даже использование tikzDevice не решает проблему для меня. Проблема существует для меня с ноября прошлого года, по крайней мере, насколько я помню. Я пытался решить, читая книгу Yihui Xie, использовал примеры с его сайта, но потерпел неудачу.
Итак: кто-нибудь видел ту же проблему и придумал ее решение? Даже намек, указывающий в определенном направлении, может помочь.
Моя система:
Win 7, MikTeX2.9 (пакеты обновлены 15.01.2016), TeXstudio 2.10.6, R3.2.2 (пакеты обновлены 15.01.2016).
Редактировать:
По просьбе CL я сразу же обновил R и пакеты. Ниже вы найдете мой MWE. Проблема не отображения точек данных при использовании pch=20 ; pch=19, geom_point() сохраняется до тех пор, пока я не выбираю графическое устройство явно. При использовании tikzDevice и сохранении графиков в *.tex отображаются точки данных. Они также отображаются при указании dev='tikz' в параметрах чанка. Другие графические устройства тоже работают.
МВЕ это:
\documentclass{article}
\usepackage{graphicx}
\usepackage{tikz}
\begin{document}
\begin{verbatim}
this chunk options:
fig.width=4,fig.height=3,fig.align='center',fig.show='asis'
\end{verbatim}
<<one.one,fig.width=4,fig.height=3,fig.align='center',fig.show='asis'>>=
library(knitr)
par(mar=c(4,4,1,1),mgp=c(2,1,0),cex=0.8)
plot(cars,pch=20,col='darkgray')
fit<-lm(dist~speed, data=cars)
abline(fit,lwd=1,col='red')
par(mar=c(4,4,1,1),mgp=c(2,1,0),cex=0.8)
plot(cars,pch=18,col='darkgray')
fit<-lm(dist~speed, data=cars)
abline(fit,lwd=1,col='red')
library(ggplot2)
test1<-ggplot(cars,aes(x=speed,y=dist))
test2<-test1+geom_smooth(method="lm",se=FALSE,color='red',data=fit)
test3<-test2+
ggtitle("") +
geom_point(size=1,colour='red')
test3
test1<-ggplot(cars,aes(x=speed,y=dist))
test2<-test1+geom_smooth(method="lm",se=FALSE,color='red',data=fit)
test3<-test2+
ggtitle("") +
geom_point(size=1,colour='red',shape=3)
test3
@
\begin{verbatim}
next chunk options:
three.one,fig.width=4,fig.height=3,fig.align='center',fig.show='asis'
\end{verbatim}
<<three.one,fig.width=4,fig.height=3,fig.align='center',fig.show='asis'>>=
require(tikzDevice)
tikz("three.one.tex",width=4.2,height=3)
plot(cars,pch=20,col='darkgray')
fit<-lm(dist~speed, data=cars)
abline(fit,lwd=1,col='red')
dev.off()
tikz("four.one.tex",width=4.2,height=3)
test1<-ggplot(cars,aes(x=speed,y=dist))
test2<-test1+geom_smooth(method="lm",se=FALSE,color='red',data=fit)
test3<-test2+
ggtitle("") +
geom_point(size=1,colour='red')
test3
dev.off()
@
\input{three.one.tex}
\input{four.one.tex}
\begin{verbatim}
next chunk options:
five.one,fig.width=4,fig.height=3,fig.align='center',fig.show='asis, dev='tikz'
\end{verbatim}
<<five.one,fig.width=4,fig.height=3,fig.align='center',fig.show='asis',dev='tikz'>>=
plot(cars,pch=20,col='darkgray')
abline(fit,lwd=1,col='red')
test1<-ggplot(cars,aes(x=speed,y=dist))
test2<-test1+geom_smooth(method="lm",se=FALSE,color='red',data=fit)
test3<-test2+
ggtitle("") +
geom_point(size=1,colour='red')
test3
@
\begin{verbatim}
next chunk options:
five.one,fig.width=4,fig.height=3,fig.align='center',fig.show='asis, dev=c('png','pdf')
\end{verbatim}
<<seven.one,fig.width=4,fig.height=3,fig.align='center',fig.show='asis',dev=c('png', 'pdf')>>=
plot(cars,pch=20,col='darkgray')
abline(fit,lwd=1,col='red')
test1<-ggplot(cars,aes(x=speed,y=dist))
test2<-test1+geom_smooth(method="lm",se=FALSE,color='red',data=fit)
test3<-test2+
ggtitle("") +
geom_point(size=1,colour='red')
test3
@
\end{document}
Если эта проблема не воспроизводима, я смирюсь с этим и проигнорирую ее. Но если это воспроизводимо, мне любопытно, как может выглядеть решение.
Наряду с тестами я столкнулся с еще одной проблемой, и я обнаружил, что эта проблема была заявлена по крайней мере еще одним пользователем TeX: Knitr и пакет LaTeX xcolor не кажутся лучшими друзьями.
Спасибо еще раз.
fil.align
должно бытьfig.align
? - person Spacedman   schedule 16.01.2016document
... Вы получаете текстовый вывод? Вы проверяли журналы и сообщения? - person Spacedman   schedule 16.01.2016\documentclass{article} \begin{document} <<>>= @ \end{document}
Я получаю текстовый вывод, а также аннотации на графиках, текст вокруг графиков, формулы, таблицы, проблем нет. Предупреждения: In (if (out_format(c(latex, sweave, listings))) sanitize_fn else paste0)(path, : точки в путях фигур заменены на _ (figure/one_one) . - person Mike   schedule 16.01.2016\include{*.tex}
это всего лишь обходной путь, а не решение. Я не знаю, закрыть ли это или оставить открытым. - person Mike   schedule 16.01.2016ggplot
не воспроизводится без объектаfit
. Минимальный пример должен быть автономным: минимальный, но содержащий все необходимые шаги для воспроизведения проблемы. Так в чем же проблема? Недостающие точки на графике 1 и графике 3? 3) Что означает комментарий кtikzDevice
? Использованиеdev = "tikz"
по-прежнему включает фигуру, созданную вязщиком. - person CL.   schedule 17.01.2016