小编Thi*_*ijs的帖子

在ggplot2中使用group,linetype和color时的单个图例?

我正在创建一个非常简单的绘图,它将数据分组并使用分组变量来确定线条样式和颜色.然后我使用'scale_linetype_manaul'和'scale_colour_manual'覆盖那些.到目前为止一切都那么好,但是当我尝试修改图例标签或其标题时,图例分为两部分:一部分用于线型,一部分用于颜色.我只想要一个传奇,但有自定义标签和标题.

这个问题之后,我确保将两个比例对象命名为相同,但这似乎没有帮助.

最小的例子:

X <- data.frame(TPP=factor(c(1,5,10,1,5,10,1,5,10)), 
                value=c(-0.035819, 0.003356, 0.066091, -0.028039, 0.004333, 0.060292, -0.023115, 0.005661, 0.058821), 
                horizon=c(1,1,1,2,2,2,3,3,3))
ggplot(X, aes(x=horizon, y=value, group=TPP, col=TPP, linetype=TPP))+
  geom_line(size=1)+
  scale_linetype_manual(name="X", values = c("solid","dashed", "dotted")) +
  scale_color_manual(name="X", values = c("black", "red", "blue"), labels=c("Low", "5","High"))
Run Code Online (Sandbox Code Playgroud)

这产生了下和两个图例.如何使用自定义标签和标题重新组合这些图例?

r colors line legend ggplot2

8
推荐指数
1
解决办法
2939
查看次数

用 knitr 垂直堆叠的子图

我试图在 Latex 文档中使用 knitr 将两个子图垂直堆叠而不是并排放置。在 Latex 中,我通常通过在需要彼此堆叠的两个子浮点之间放置一个 '\par' 命令来做到这一点,但我不知道如何将该命令传递给 knitr。

我只能找到一个关于此的主题,使用 knitr 的子图或子标题?. Yihui 给出的例子将数字并排。该线程中的最终答案实现了我的目标,但是使用了相当多的黑客技术,所以我想知道是否有一种简单的方法可以将此命令直接传递给 knitr?

MWE:

\documentclass[a4paper]{article} 

\usepackage[font=footnotesize]{subfig}

\begin{document} 

<<GeneratePlot>>=
library(ggplot2)
library(tikzDevice)
P1 <- ggplot(data=mpg, aes(x=displ, y=hwy, colour=factor(cyl)))+
    geom_line()
P2 <-  ggplot(data=mpg, aes(x=displ, y=hwy, colour=factor(cyl)))+
    geom_point()
@


<<fig1,eval=TRUE,echo=FALSE,dev='tikz', fig.width=6, fig.height=3, out.width='1\\textwidth', fig.cap='Two figures', fig.subcap=c('Top','Bottom'), fig.show='asis', fig.pos='!htpb', fig.align='center', dependson='GeneratePlot'>>= 
P1
P2
@ 

\end{document}
Run Code Online (Sandbox Code Playgroud)

我还尝试在与输出相同的块中创建绘图对象,但这会产生相同的结果,并且在我的原始文档中,绘图对象是作为更大块的一部分生成的,因此它将具有与 MWE 相同的结构.

latex r subfigure knitr

5
推荐指数
1
解决办法
1402
查看次数

标签 统计

r ×2

colors ×1

ggplot2 ×1

knitr ×1

latex ×1

legend ×1

line ×1

subfigure ×1