2014-09-11 3 views
9

Есть 6 типов линий, определенные для участков в R определяется как «Пунктирная», «longdash» ... LinkКак определить больше типов линий для графиков в R?

Как я могу определить несколько типов, если у меня есть больше, что 6 серия построить? Графические линии можно различать на основе цвета в мягкой копии, но не подходят для черно-белой печати.

Есть ли еще доступные варианты или мне нужно их определить на основе объединения линий и точек, как в ссылке ссылки?

plot(x, type = "b", pch = 0, lty = "dotted") 

Некоторые поиск Google предположил, что закономерности включения/выключения также могут быть указаны со строками из 2, 4, 6 или 8 символов (ненулевых шестнадцатеричных символов, 1-9 и A-F) и предварительно заданные стили «пунктир» = «44», «пунктир» = «13», «точка» = «1343», «длинный» = «73», «twodash» = «2262».

Но кажется, что это будет много хитов и испытаний, чтобы использовать это, чтобы определить новые типы линий, которые будут различимы на B & W печати. ​​

Редактировать:

Если точки и стили линий объединяются, как можно определить набор типов линий таким образом, что они могут быть введены в

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

Спасибо много.

+0

Один из альтернативных вариантов я часто видеть в ч/б графов использовать различные маркера, такие как треугольники, квадраты, круги, плюсы, звездочки, открытые круги вдоль с точечным или пунктирным стилем. –

+0

Да, я добавил, что в коде, где pch - стиль используемых точек. Мне интересно, есть ли альтернатива, которая работает как по цвету, так и по цвету в указанном выше порядке. – Anusha

ответ

11

Как вы упомянули в своей ссылке, правовые значения - это строки «пустые», «твердые», «пунктирные», «пунктирные», «точечные», «долгожданные» и «twodash». В качестве альтернативы можно использовать числа от 0 до 6 (0 для «пустых», 1 для «твердых», ...).

Кроме того, можно также использовать строки, которые определяют тип линии с до 8 шестнадцатеричных цифр (каждая цифра с указанием длины чередующихся линий и пробелов).

Вот пример, используя linetype ИСЗ в ggplot2 что эквивалентно lty в базовой R. Таким образом, вы можете получить больше, чем 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)) 

enter image description here

Объяснение:

"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: решение принимается от этого link.

+0

Спасибо за ответ. Будут ли линии twodash и 12345678 отличаться от печати? Теоретически существует много комбинаций из 8 цифр, но будут ли они визуально разными? Если мне нужно определить, используя точки, есть ли способ создать вектор типов линий и цвет также, может быть? – Anusha

+0

, если вы хотите использовать 'points' лучше использовать параметр' pch', у вас есть 0:18 symboles, а также вы можете использовать некоторый символ, чтобы указать точки, похожие на pch = "a". – agstudy

+0

Могу ли я создать вектор типов линий, который затем можно использовать как lty = 1: N? Как определить этот вектор с помощью pch? – Anusha

0

Это работает с использованием PCH = 1: Ncol (DF)

# sample data 
dat <- matrix(runif(40,1,20),ncol=10) 
matplot(dat, type = "b", lty = "longdash", pch = 1:10, col = 1:10, lwd = 2) 
Смежные вопросы