2016-01-10 3 views
4

В следующем ДФ:Формы и типы линий в ggplot

> seperate 
    Tenors Ratio Pairs Subgroup 
1  1W 93.9426 audusd USD Pairs 
2  1M 97.6231 audusd USD Pairs 
3  3M 100.0376 audusd USD Pairs 
4  6M 108.7951 audusd USD Pairs 
5  12M 127.6704 audusd USD Pairs 
6  1W 93.6322 eurusd USD Pairs 
7  1M 93.5800 eurusd USD Pairs 
8  3M 96.2518 eurusd USD Pairs 
9  6M 101.1169 eurusd USD Pairs 
10 12M 108.7339 eurusd USD Pairs 
11  1W 92.8932 gbpusd USD Pairs 
12  1M 89.6215 gbpusd USD Pairs 
13  3M 83.8495 gbpusd USD Pairs 
14  6M 86.3159 gbpusd USD Pairs 
15 12M 86.9095 gbpusd USD Pairs 
16  1W 94.4111 usdcad USD Pairs 
17  1M 86.4612 usdcad USD Pairs 
18  3M 88.4969 usdcad USD Pairs 
19  6M 94.3754 usdcad USD Pairs 
20 12M 103.1338 usdcad USD Pairs 
21  1W 97.9665 usdchf USD Pairs 
22  1M 97.1005 usdchf USD Pairs 
23  3M 93.1135 usdchf USD Pairs 
24  6M 90.2106 usdchf USD Pairs 
25 12M 84.7482 usdchf USD Pairs 
26  1W 85.7557 usdjpy USD Pairs 
27  1M 89.6454 usdjpy USD Pairs 
28  3M 90.6929 usdjpy USD Pairs 
29  6M 90.7980 usdjpy USD Pairs 
30 12M 95.8823 usdjpy USD Pairs 
31  1W 92.2133 nzdusd USD Pairs 
32  1M 95.3295 nzdusd USD Pairs 
33  3M 99.8976 nzdusd USD Pairs 
34  6M 107.4463 nzdusd USD Pairs 
35 12M 124.3403 nzdusd USD Pairs 
36  1W 88.2031 usddkk USD Pairs 
37  1M 93.0318 usddkk USD Pairs 
38  3M 91.5042 usddkk USD Pairs 
39  6M 99.4707 usddkk USD Pairs 
40 12M 97.4030 usddkk USD Pairs 
41  1W 95.8640 usdnok USD Pairs 
42  1M 88.9647 usdnok USD Pairs 
43  3M 93.5782 usdnok USD Pairs 
44  6M 99.4802 usdnok USD Pairs 
45 12M 107.7916 usdnok USD Pairs 
46  1W 91.5501 usdsek USD Pairs 
47  1M 89.5148 usdsek USD Pairs 
48  3M 92.1016 usdsek USD Pairs 
49  6M 99.6835 usdsek USD Pairs 
50 12M 112.8247 usdsek USD Pairs 
51  1W 43.6337 usdhkd USD Pairs 
52  1M 61.4948 usdhkd USD Pairs 
53  3M 62.5292 usdhkd USD Pairs 
54  6M 54.5213 usdhkd USD Pairs 
55 12M 41.1970 usdhkd USD Pairs 
56  1W 93.7892 usdzar USD Pairs 
57  1M 92.0233 usdzar USD Pairs 
58  3M 94.2433 usdzar USD Pairs 
59  6M 105.9208 usdzar USD Pairs 
60 12M 108.5231 usdzar EUR Pairs 
61  1W 95.9848 euraud EUR Pairs 
62  1M 96.6497 euraud EUR Pairs 
63  3M 99.2588 euraud EUR Pairs 
64  6M 103.1839 euraud EUR Pairs 
65 12M 111.2710 euraud EUR Pairs 
66  1W 90.3670 eurchf EUR Pairs 
67  1M 92.9810 eurchf EUR Pairs 
68  3M 86.7696 eurchf EUR Pairs 
69  6M 92.4201 eurchf EUR Pairs 
70 12M 107.0379 eurchf EUR Pairs 
71  1W 92.5969 eurgbp EUR Pairs 
72  1M 86.2361 eurgbp EUR Pairs 
73  3M 81.5729 eurgbp EUR Pairs 
74  6M 82.2716 eurgbp EUR Pairs 
75 12M 90.0153 eurgbp EUR Pairs 
76  1W 92.9831 eurjpy EUR Pairs 
77  1M 91.2058 eurjpy EUR Pairs 
78  3M 90.1872 eurjpy EUR Pairs 
79  6M 90.9569 eurjpy EUR Pairs 
80 12M 98.0120 eurjpy EUR Pairs 
81  1W 87.7428 eurnok EUR Pairs 
82  1M 84.9459 eurnok EUR Pairs 
83  3M 86.7989 eurnok EUR Pairs 
84  6M 87.0153 eurnok EUR Pairs 
85 12M 98.4807 eurnok EUR Pairs 
86  1W 97.1092 eurtry EUR Pairs 
87  1M 93.0774 eurtry EUR Pairs 
88  3M 96.7237 eurtry EUR Pairs 
89  6M 91.3461 eurtry EUR Pairs 
90 12M 75.9171 eurtry EUR Pairs 

.. со следующим сюжетом:

ggplot(seperate, aes(x=Tenors,y =Ratio, colour=Pairs, group=Tenors)) +  
    geom_line( data=seperate,aes(x=Tenors,y=Ratio,group=Pairs,linetype=Pairs))+ 
    geom_point(data=seperate,aes(x=Tenors,y=Ratio,group=Pairs,shape=Pairs))+ 
    facet_grid(Subgroup~.)+ 
    xlab("Tenor")+ 
    ylab("Average")+ 
    ylim(c(20,150)) 

... Сейчас я далеко, но я хотел бы присвоить каждому 18 валютной пару со своим собственными отсчитываемым и формой, но я получаю это:

enter image description here

кажется, как будто есть о Всего 12 линий и еще меньше форм - это правда?

+0

это может быть полезно http://docs.ggplot2.org/0.9.3.1/scale_manual.html – MLavoie

+0

это действительно так - спасибо! –

+0

Кто-то должен сказать следующее: использование 18 разных типов линий и графических символов является, безусловно, не визуально эффективным способом представления этого набора данных. Тем не менее, +1 для четкого вопроса с воспроизводимым кодом. – bdemarest

ответ

6

Такое большое количество типов линий и форм, вероятно, будет запутанным смотреть, но вот как получить доступ к более типов линий и маркеров точек:

типы линий могут быть определены с помощью последовательностей 2, 4, 6 или 8 шестнадцатеричные цифры (от 1 до 9, а затем от A до F для представления от 10 до 15 (0 не допускается в кодах типов линий)). Шаблон для них - длина тире, а затем длина зазора. Таким образом, «24» будет тире длины 2 с последующим зазором длины 4. «42C6» будет тире 4 щели 2 тире 12 зазора 6 и т. Д. Ниже я создаю 24 разных типа линий для иллюстрации, но вы можете, конечно, адаптировать свои шаблоны по мере необходимости.

linetypes = c(apply(expand.grid(c(2,4), c(1,2,4,8,"A")), 1, paste, collapse=""), 
       apply(expand.grid(c(2,4,8), c(2,4), c(5,"F"), 2), 1, paste, collapse=""), 
       "4284B4F4", "228F61A4") 

R имеет 26 встроенных символов (см ?pch), 24 из которых используются в приведенном ниже участке. Вы можете получить доступ к дополнительным символам с помощью Unicode, как показано в this SO answer.

Вот некоторые поддельные данные для построения. Мы будем использовать linetypes в качестве переменной группировки, чтобы легенда отображала код типа линии для каждого из типов линий.

dat = data.frame(x=rep(1:2, 24), y=rep(1:24, each=2), 
       group=factor(rep(linetypes, each=2), levels=linetypes)) 

ggplot(dat, aes(x,y, group=group, linetype=group, shape=group)) + 
    geom_line() + 
    geom_point(size=3, colour="blue", fill="red") + 
    scale_shape_manual(values=c(0:23)) + 
    scale_linetype_manual(values=linetypes) + 
    guides(shape=guide_legend(reverse=TRUE), 
     linetype=guide_legend(reverse=TRUE)) + 
    labs(shape="", linetype="") 

enter image description here

Эти типы линий и маркеры точек не являются специфическими для ggplot2 и могут быть доступны в базовой графики и решетки, а также.

+0

Отличный ответ, особенно в сочетании с другим отличным ответом от eipi10 здесь: http://stackoverflow.com/questions/30742379/creating-new-shape-palettes-in-ggplot2-and-other-r-graphics – PatrickT

Смежные вопросы