如何在R(自定义线型)中为图形定义更多线型?

如何在R(自定义线型)中为图形定义更多线型?,r,ggplot2,plot,R,Ggplot2,Plot,R中有6种线条类型,分别定义为“虚线”、“长划线” 如果要打印的系列超过6个,如何定义更多类型?图形线可以根据软拷贝中的颜色进行区分,但不适用于黑白打印 是否有更多选项可用,或者是否需要根据参照链接中的线和点组合来定义它们 plot(x, type = "b", pch = 0, lty = "dotted") 一些谷歌搜索建议,开/关模式也可以指定为2、4、6或8个字符的字符串(非零十六进制字符,1-9和a-f),预设样式为“虚线”=“44”,“虚线”

R中有6种线条类型,分别定义为“虚线”、“长划线”

如果要打印的系列超过6个,如何定义更多类型?图形线可以根据软拷贝中的颜色进行区分,但不适用于黑白打印

是否有更多选项可用,或者是否需要根据参照链接中的线和点组合来定义它们

plot(x, type = "b", pch = 0, lty = "dotted")
一些谷歌搜索建议,开/关模式也可以指定为2、4、6或8个字符的字符串(非零十六进制字符,1-9和a-f),预设样式为“虚线”=“44”,“虚线”=“13”,“点划线”=“1343”,“长划线”=“73”,“双划线”=“2262”

但是,用它来定义新的线条类型似乎需要大量的尝试,这些线条类型在黑白印刷上是可以区分的

编辑: 如果将点样式和线样式组合在一起,如何定义线类型集,使它们可以作为输入

plot(DF, ..., col = 1:ncol(DF), lty = 1:ncol(DF))
# where DF is the set of data to be plotted. 

非常感谢。

正如您在链接中提到的,合法值是字符串“空白”、“实心”、“虚线”、“虚线”、“点划线”、“长划线”和“双划线”。或者,可以使用数字0到6(0表示“空白”,1表示“实心”…)

此外,还可以使用字符串来定义最多为8位十六进制数字的线型(每个数字指定交错行和间距的长度)

这里是一个示例,在
ggplot2
中使用
linetype
aes相当于在base R中使用
lty
。这样可以获得6种以上的预定义类型

library(ggplot2)
d=data.frame(lt=c("blank", "solid", "dashed", "dotted", 
                  "dotdash", "longdash", "twodash", "1F", 
                  "F1", "4C88C488", "12345678"))
ggplot() +
  scale_x_continuous(name="", limits=c(0,1), breaks=NULL) +
  scale_y_discrete(name="linetype") +
  scale_linetype_identity() +
  geom_segment(data=d, mapping=aes(x=0, xend=1, y=lt, yend=lt, linetype=lt))

说明:

"1F": dash length 1, gap length F (15)
"F1": dash length F (15), gap length 1
"4C88C488": dash (4), gap (C=12), dash (8), gap (8), dash (C=12), ...
"12345678": dash (1), gap (2), dash (3), gap (4), ...

PS:该解决方案采用了该方法。

该方法使用pch=1:ncol(DF)工作

#示例数据

dat我在黑白图中经常看到的一种替代方法是使用不同的标记,如三角形、正方形、圆形、加号、星号、开放圆以及点划线或点划线样式。是的,我在代码中添加了这一点,其中pch是所使用的点样式。我想知道是否有一种替代方法可以以上述方式在颜色和黑白图中工作。Th答案是:两行,12345678行不同吗?从理论上讲,有8个数字的组合,但它们会在视觉上有所不同吗?如果我必须定义使用点,有没有一种方法来创建线型和颜色向量?如果你想使用<代码>点< /代码>更好地使用<代码> pCH < /代码>ameter你有0:18符号,你也可以使用一些字符来指定点,比如pch=“a”。我可以创建一个线型向量,然后将其用作lty=1:N吗?我如何使用pch定义这个向量?嗯,我非常喜欢
“1F”
“F1”
解决方案……提供了很多可能性!
# sample data
dat <- matrix(runif(40,1,20),ncol=10) 
matplot(dat, type = "b", lty = "longdash", pch = 1:10, col = 1:10, lwd = 2)