R ggplot:将线型映射到一个特定标高上的系数并强制实线?

R ggplot:将线型映射到一个特定标高上的系数并强制实线?,r,ggplot2,R,Ggplot2,我正在尝试用不同的线型绘制多条线(对于打印友好的绘图,颜色不是最好的选择)。有一行表示我们的“主要”类别,所以我想用实线保持它,以便于可视化,我如何能自动将因子映射到线型,并强制一个特定因子级别的特定线型 下面是一个例子: library(ggplot2) df <- data.frame(time=c(1:10,1:10), X=c(cumsum(rnorm(10)),cumsum(rnorm(10))), categ=

我正在尝试用不同的线型绘制多条线(对于打印友好的绘图,颜色不是最好的选择)。有一行表示我们的“主要”类别,所以我想用实线保持它,以便于可视化,我如何能自动将因子映射到线型,并强制一个特定因子级别的特定线型

下面是一个例子:

library(ggplot2)
df <- data.frame(time=c(1:10,1:10),
                 X=c(cumsum(rnorm(10)),cumsum(rnorm(10))),
                 categ=c(rep("b",10),rep("a",10)))
df %>%
  ggplot(aes(x=time,y=X)) +
  geom_line(aes(linetype=categ))
库(ggplot2)
df%
ggplot(aes(x=时间,y=x))+
几何线(aes(线型=类别))

如何仍然保持因子变量categ映射的线型,但强制(例如)标高
b
具有实心线型?

您可以使用
scale\u linetype\u manual
并为
值提供命名向量,我知道,但我想要一个只允许键入一个值的惰性解决方案。例如,如果它是颜色,我有12种颜色,并且希望一个特定类别有一条
“黑色”
彩色线条,那么是否可以避免键入其他11种颜色?据我所知,第一个线型级别始终是实心的。既然你想把它作为你的“主要”类别,为什么不把它设置为因子的第一级呢?您可以使用
relevel()
,避免为其他级别指定任何内容。