knitr plots:点(geom_point(),pch = 20,pch = 19 ......)没有显示

时间:2016-01-16 09:06:18

标签: r plot windows-7 knitr miktex

我对knitr的某些行为感到有点困扰。工作示例应显示4个图,所有图表都使用2种不同的绘图方法显示相同的数据。

序言:

\documentclass{article}

前两个图是使用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也无法解决问题。自去年11月以来,问题一直存在,至少就我记忆中而言。我试着通过阅读Yihui Xie的书,使用他网站上的例子来解决问题但是失败了。

那么:有没有人看到同样的问题,并提出了解决方案?即使是指向某个方向的暗示也可能有所帮助。

我的系统:

Win 7,MikTeX2.9(2016年1月15日更新的软件包),TeXstudio 2.10.6,R3.2.2(软件包于2016年1月15日更新)。

编辑:

正如CL所说,我也正在更新R和包。在下面你找到我的MWE。使用时不显示数据点的问题     pch = 20; pch = 19,geom_point() 只要我没有明确地选择图形设备就是持久的。使用 tikzDevice 并将图表保存到* .tex时,数据点会显示。它们也在放置时显示     dev的= 'tikz' 进入块选项。其他图形设备似乎也可以正常工作。

MWE是:

\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 vs. xcolor

0 个答案:

没有答案