графики вязания: точки (geom_point(), pch=20, pch=19) не отображаются

Меня немного беспокоит поведение вязальщицы. Рабочий пример должен отображать 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 не кажутся лучшими друзьями.

Спасибо еще раз.

knitr против xcolor


person Mike    schedule 16.01.2016    source источник
comment
Это простая опечатка, где fil.align должно быть fig.align?   -  person Spacedman    schedule 16.01.2016
comment
Кроме того, какой у вас полный документ? Это не просто преамбула в одну строку, не так ли? Потому что вам нужна полная среда LaTeX document... Вы получаете текстовый вывод? Вы проверяли журналы и сообщения?   -  person Spacedman    schedule 16.01.2016
comment
ad1) Здесь опечатка. Спасибо.   -  person Mike    schedule 16.01.2016
comment
ad2) Так как я хотел привести минимальный рабочий пример без вмешательства других пакетов, я удалил все ненужное. Полные выходные данные выше построены из чего-то вроде: \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
comment
ХОРОШО. Что бы ни изменилось в документе, пакетах или где-либо еще: использование tikzDevice решает проблему на данный момент. Однако, так как фигура больше не включена в knitr, а с \include{*.tex} это всего лишь обходной путь, а не решение. Я не знаю, закрыть ли это или оставить открытым.   -  person Mike    schedule 16.01.2016
comment
1) Обновите R до текущей версии (3.2.3) и затем обновите пакеты. 2) я не понимаю проблемы; представленный код определенно не создает показанные графики (нет прямой линии в коде для первых двух графиков), а часть ggplot не воспроизводится без объекта fit. Минимальный пример должен быть автономным: минимальный, но содержащий все необходимые шаги для воспроизведения проблемы. Так в чем же проблема? Недостающие точки на графике 1 и графике 3? 3) Что означает комментарий к tikzDevice? Использование dev = "tikz" по-прежнему включает фигуру, созданную вязщиком.   -  person CL.    schedule 17.01.2016
comment
объявление 1) Готово. объявление 2) Готово. объявление 3) Дело в том, что только явный вызов графического устройства заставляет отображать точки данных, когда отсутствие вызова устройства не вызывает проблем с отображением других символов, кроме точек на диаграмме рассеяния. Проблема со связью может быть связана с моим английским.   -  person Mike    schedule 17.01.2016
comment
Извините, я не могу воспроизвести проблему. В моей системе все графики выглядят нормально (нет пропущенных точек). Я предполагаю, что это может быть как-то связано со шрифтами в вашей системе, но это только предположение. (Не беспокойтесь о своем английском, вас нетрудно понять. Многие люди здесь не являются носителями английского языка — (очевидно), включая меня.)   -  person CL.    schedule 18.01.2016
comment
Спасибо за усилия, которые вы приложили для тестирования вашей системы. Думал так много, потому что, если бы эта проблема воспроизводилась довольно часто, автор knitr что-то сделал бы с этим. В любом случае, я буду игнорировать это.   -  person Mike    schedule 19.01.2016