簡體   English   中英

ggplot中的形狀和線型

[英]Shapes and Linetypes in ggplot

在以下df中:

> 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貨幣對分配自己的線型和形狀,但我明白了:

在此輸入圖像描述

似乎只有12種線型,甚至更少的形狀是真的嗎?

如此大量的線型和形狀可能會令人困惑,但這里是如何訪問更多的線型和點標記:

線型可以由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訪問其他符號,如本答復所示。

這里有一些假數據可供繪制。 我們將使用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="")

在此輸入圖像描述

這些線型和點標記不是特定於ggplot2的,也可以在基本圖形和點陣中訪問。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM