3

对于此图,我想将图例拆分为 2 个单独的图例。一种将脉冲湿地显示为圆形,阴影对应于湿地编号,另一种将静态湿地显示为三角形,灰色阴影对应于湿地编号。然后水文传说就没有必要了,我想摆脱它。

这是我希望图例看起来的样子(但当然更小。这是在 PowerPoint 中完成的,只是为了演示)。

在此处输入图像描述

我正在粘贴下面的数据和代码。

温度图

数据

      日期水文湿地温度层
1 15-Jun 脉冲一个 21.9 表面
2 15-Jun 脉冲一个 21.0 底部
3 7 月 1 日脉冲一个 28.8 表面
4 7 月 1 日脉冲一个 23.5 底部
5 7 月 10 日脉冲一个 31.8 表面
6 7 月 10 日脉冲一个 22.6 底部
7 7 月 14 日脉冲一个 23.0 表面
8 7 月 14 日脉冲一个 21.4 底部
9 8 月 15 日脉冲一个 28.8 表面
10 8 月 15 日脉冲一个 28.5 底部
11 11 月 7 日脉冲一个 12.1 表面
12 11 月 7 日脉冲一个 9.9 底部
13 15-6月 静二 22.2面
14 15-6月 静二 21.2 底部
15 1-7月 静态二 29.0面
16 7 月 1 日静态二 24.1 底部
17 7月10日 静二 30.9面
18 7 月 10 日静态二 23.3 底部
19 7月14日 静二 25.2面
20 7 月 14 日 静态 二 22.6 底部
21 1-Aug 静态二 27.3 表面
22 1-8 月静态 2 23.5 底部
23 8 月 15 日静态 2 26.7 表面
24 8 月 15 日静态两个 23.6 底部
25 7-11月静态二 11.9面
26 7-11月静态二 9.0底部
27 15-Jun 脉冲三 21.3 表面
28 15-6月 脉冲三 20.9 底部
29 7 月 1 日脉冲三 26.1 表面
30 7 月 1 日脉冲三 23.8 底部
31 7 月 10 日脉冲三 30.1 表面
32 7 月 10 日脉冲三 22.8 底部
33 7 月 14 日脉冲三 23.7 表面
34 7 月 14 日脉冲三 22.2 底部
35 11 月 7 日脉冲三 12.5 表面
36 11 月 7 日脉冲三个 10.0 底部
37 15-6月 静四21.0面
38 15-6月静四19.3底
39 7 月 1 日静态四 25.0 面
40 1-7 月静态四 21.2 底部
41 7 月 10 日静态四 25.7 表面
42 7 月 10 日静态四 21.3 底部
43 7月14日静四22.5面
44 7 月 14 日静态四 20.8 底部
45 1-8 月静态四 24.1 表面
46 1-8 月静态四 22.8 底部
47 8 月 15 日静态四 25.1 表面
48 8 月 15 日静态四 22.2 底部
49 7-11月静态四12.2面
50 7-11月静态四 9.1底部
51 15-6月静五19.7面
52 15-6月静五19.2底部
53 1-7月静态五 24.1 表面
54 7 月 1 日静态五 22.9 底部
55 7 月 10 日静态五 24.6 表面
56 7 月 10 日静态五 21.7 底部
57 7月14日静五21.3面
58 7 月 14 日静态五 23.0 底部
59 1-Aug 静态五 23.8 表面
60 1-8 月静态五 22.0 底部
61 8 月 15 日静态五 24.8 表面
62 8 月 15 日静态五 23.1 底部
63 7-11月静态五11.7面
64 7-11月静态五8.8底部
65 15-Jun 脉冲六 21.2 面
66 15-Jun 脉冲六 20.4 底部
67 7 月 1 日脉冲六 24.9 表面
68 7 月 1 日脉冲六 22.5 底部
69 7 月 10 日脉冲六 28.6 表面
70 7 月 10 日脉冲六 22.0 底部
71 7 月 14 日脉冲六 21.9 表面
72 7 月 14 日脉冲六 21.4 底部
73 8 月 15 日脉冲六 27.5 表面
74 8 月 15 日脉冲六 26.1 底部
75 11 月 7 日脉冲六 13.3 表面
76 11 月 7 日脉冲六 9.5 底部
77 15-Jun 脉冲七 19.7 表面
78 15-6月 脉冲七 18.7 底部
79 7 月 1 日脉冲七 23.0 表面
80 7 月 1 日脉冲七 20.8 底部
81 7 月 10 日脉冲七 24.7 表面
82 7 月 10 日脉冲七 22.2 底部
83 7 月 14 日脉冲七 21.3 表面
84 7 月 14 日脉冲七 20.6 底部
85 8 月 15 日脉冲七 26.2 表面
86 8 月 15 日脉冲七 24.7 底部
87 11 月 7 日脉冲七 12.0 表面
88 11 月 7 日脉冲七 10.5 底部
89 15-6月 静八 20.6面
90 15-6月 静八 19.5 底部
91 1-7月静八 28.1 表面
92 7 月 1 日静态八 22.5 底部
93 7月10日 静八 28.8 面
94 7 月 10 日静态八 23.1 底部
95 7月14日 静八 24.7 面
96 7 月 14 日静态八 21.9 底部
97 8 月 1 日静态八 25.0 表面
98 8 月 1 日静态八 22.0 底部
99 8月15日静八27.6面
100 8 月 15 日静态 8 25.3 底部
101 7-11月静八 12.1面
102 11 月 7 日静态八 10.3 底部
103 15-6月 静九 20.7面
104 15-6月静九19.8底
105 1-7月静九 24.8面
106 1-7月静九 22.7底部
107 10-7月静九 28.3面
108 10-7月 静九 22.8 底部
109 14-7月静九 23.9面
110 14-7月静九 22.0底部
111 1-8月静九 27.7面
112 1-Aug 静九 24.5 底部
113 15-8月静九 25.8面
114 8 月 15 日静态九 23.4 底部
115 7-11月静九 11.9面
116 7-11月静九9.5底
117 15-Jun 脉冲十 22.3 表面
118 15-Jun 脉冲十 21.9 底部
119 1-7 月脉冲十 29.6 表面
120 1-7 月脉冲十 28.2 底部
121 7 月 10 日脉冲十 33.0 表面
122 7 月 10 日脉冲十 30.4 底部
123 7 月 14 日脉冲十 25.6 表面
124 7 月 14 日脉冲十 24.1 底部
125 11 月 7 日脉冲十 13.2 表面
126 11 月 7 日脉冲十 10.1 底部

代码

colvec <-c("white", "white","gray80", "gray80", "gray60", "gray60", "gray37", "gray37","black", "black")  
water$Layer=factor(water$Layer, c("Surface", "Bottom"))
water$Date=factor(water$Date, c("15-Jun", "1-Jul", "10-Jul", "14-Jul", "1-Aug", "15-Aug", "7-Nov"))
water$Wetland=factor(water$Wetland, c("One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten"))

ggplot(water, aes(Date, Temp, group=Wetland, shape=Hydrology)) +
  geom_point(size =4, color = "black")+
  geom_point(aes(color=Wetland),size=3) +
  scale_colour_manual(values=colvec) +
  facet_grid(Layer ~ Hydrology) 

谢谢,

-莎拉

4

1 回答 1

5

这是受此问题启发的解决方案

colvec2首先,制作只包含一次所有颜色的新变量。

colvec2 <-c("white", "gray80", "gray60", "gray37",  "black")  
colvec <-c("white", "white","gray80", "gray80", "gray60", "gray60", "gray37", "gray37","black", "black")  

原始图另存为对象,没有图例。

p<-ggplot(water, aes(Date, Temp, group=Wetland, shape=Hydrology)) +
  geom_point(aes(color=Wetland),size=3) +
  scale_colour_manual(values=colvec) +
  facet_grid(Layer ~ Hydrology) +
  theme(legend.position="none")

仅包含 的数据的图Pulsed。设置shape=16geom_point(). 更改了scale_colour_manual()图例标题和颜色。

p1<-ggplot(subset(water,Hydrology=="Pulsed"), 
     aes(Date, Temp, group=Wetland, shape=Hydrology)) +
  geom_point(aes(color=Wetland),size=3,shape=16) +
  scale_colour_manual("Pulsed Wetlands",values=colvec2) +
  facet_grid(Layer ~ Hydrology)

与 相同p1,仅用于Static

p2<-ggplot(subset(water,Hydrology=="Static"), 
      aes(Date, Temp, group=Wetland, shape=Hydrology)) +
  geom_point(aes(color=Wetland),size=3,shape=17) +
  scale_colour_manual("Static Wetlands",values=colvec2) +
  facet_grid(Layer ~ Hydrology)

保存绘图p1p2使用ggplot_build()ggplot_gtable()

pt1<-ggplot_gtable(ggplot_build(p1))
pt2<-ggplot_gtable(ggplot_build(p2))

仅提取两个情节的传说。这次的图例在 12. element (element contains guide-box)

leg1<-pt1$grobs[[12]]
leg2<-pt2$grobs[[12]]

现在使用grid.arrange()arrangeGrob()绘制所有部分。

library(gridExtra)
grid.arrange(arrangeGrob(p,arrangeGrob(leg1,leg2), ncol = 2,widths=c(3/4,1/4)))

在此处输入图像描述

于 2013-03-17T16:31:10.773 回答