簡體   English   中英

如何向 geom_col 添加額外的 x 和 y 軸?

[英]How do I add an additional x and y axis to geom_col?

我目前正在嘗試將 O2 配置文件添加到我在 ggplot 中制作的深度分布中。 我不能使用 sec.axis 因為附加軸不是原始軸的轉換。 我想我需要在不使用 ggplot 的情況下重新繪制整個事情,但我什至不確定從哪里開始。 這是我基本上想要做的事情的鏈接 我有按深度划分的魚分布,但只需要添加氧氣。 需要明確的是,氧氣將通過增加深度來繪制,因此最低深度即。 0、10 等將在頂部,然后向 1500 m 增加。

有誰知道如何做到這一點?

是我迄今為止能夠創建的內容。 哦也是次要問題! 有誰知道如何去除負數並讓它們在 x 軸上都是正數?

如果有什么我需要澄清的,請告訴我!

這是我的代碼:

Fish$Depth <- factor(Fish$Depth, levels = c("1500-1000", "1000-700", "700-450", "450-70", "70-0")) 
fishplot<- ggplot (Fish, aes(x=Depth)) +
  geom_col(data = subset(Fish, DayNight == "Night"),
           aes(y = Abundance, fill = 'Night')) +
  geom_col(data = subset(Fish, DayNight == "Day"),
           aes(y = -Abundance, fill = 'Day')) + coord_flip() +
  scale_y_continuous(
    position = "right",
    expand = c(0,0)) +
  theme(panel.spacing.x = unit(0, "mm")) + 
  ggtitle("Fish Abundance by Depth") 
fishplot

這是示例魚數據:

 ï..Filler   DayNight BroadClassification Abundance Depth
1          0      Day                Fish 0.7110791 1500-1000
2          0      Day                Fish 2.0440120 1000-700
3          0      Day                Fish 3.4934186 700-450
4          0      Day                Fish 3.5640043 450-70
5          0      Day                Fish 1.4005127 70-0
6          0    Night                Fish 0.7962357 1500-1000
7          0    Night                Fish 1.0298787 1000-700
8          0    Night                Fish 0.6769755 700-450
9          0    Night                Fish 1.6351438 450-70
10         0    Night                Fish 1.9773601 70-0 

以下是 O2 的示例數據:

ï..Filler Depth..m Averaged.O2
1          NA        1      196.96
2          NA        2      197.18
3          NA        3      197.40
4          NA        4      197.11
5          NA        5      179.88
6          NA        6      199.32
7          NA        7      197.98
8          NA        8      197.47
9          NA        9      198.11
10         NA       10      198.13
11         NA       11      197.83
12         NA       12      197.73
13         NA       13      198.14
14         NA       14      197.68
15         NA       15      197.90
16         NA       16      197.92
17         NA       17      197.77
18         NA       18      197.13
19         NA       19      197.85
20         NA       20      198.09
21         NA       21      197.95
22         NA       22      198.04
23         NA       23      197.74
24         NA       24      198.09
25         NA       25      198.22
26         NA       26      197.86
27         NA       27      198.27
28         NA       28      197.39
29         NA       29      197.48
30         NA       30      197.76
31         NA       31      197.67
32         NA       32      197.90
33         NA       33      197.32
34         NA       34      197.71
35         NA       35      198.01
36         NA       36      197.86
37         NA       37      196.12
38         NA       38      197.04
39         NA       39      197.35
40         NA       40      197.25
41         NA       41      197.05
42         NA       42      196.80
43         NA       43      196.70
44         NA       44      196.63
45         NA       45      196.92
46         NA       46      196.35
47         NA       47      196.44
48         NA       48      196.35
49         NA       49      195.89
50         NA       50      196.43
51         NA       51      195.04
52         NA       52      193.80
53         NA       53      193.41
54         NA       54      192.62
55         NA       55      177.26
56         NA       56      159.58
57         NA       57      154.47
58         NA       58      147.79
59         NA       59      142.82
60         NA       60      119.95
61         NA       61      115.37
62         NA       62      108.85
63         NA       63      106.38
64         NA       64      102.76
65         NA       65      101.86
66         NA       66      120.54
67         NA       67      118.69
68         NA       68      123.03
69         NA       69      122.49
70         NA       70      120.24
71         NA       71      119.08
72         NA       72      115.89
73         NA       73      121.55
74         NA       74      128.44
75         NA       75      129.37
76         NA       76      143.52
77         NA       77      155.50
78         NA       78      153.60
79         NA       79      152.40
80         NA       80      151.47
81         NA       81      146.24
82         NA       82      143.68
83         NA       83      138.98
84         NA       84      135.64
85         NA       85      133.21
86         NA       86      129.18
87         NA       87      125.53
88         NA       88      122.60
89         NA       89      114.99
90         NA       90      111.34
91         NA       91      107.11
92         NA       92      101.72
93         NA       93       99.26
94         NA       94       95.45
95         NA       95       86.06
96         NA       96       72.42
97         NA       97       56.60
98         NA       98       56.68
99         NA       99       51.93
100        NA      100       44.25
101        NA      101       40.03
102        NA      102       35.38
103        NA      103       30.81
104        NA      104       24.92
105        NA      105       23.59
106        NA      106       21.78
107        NA      107       20.36
108        NA      108       19.21
109        NA      109       18.82
110        NA      110       18.17
111        NA      111       17.35
112        NA      112       17.06
113        NA      113       17.32
114        NA      114       17.66
115        NA      115       17.73
116        NA      116       17.68
117        NA      117       17.60
118        NA      118       17.87
119        NA      119       17.93
120        NA      120       18.10
121        NA      121       18.33
122        NA      122       18.40
123        NA      123       18.34
124        NA      124       18.55
125        NA      125       18.83
126        NA      126       18.89
127        NA      127       19.91
128        NA      128       20.06
129        NA      129       20.94
130        NA      130       21.50
131        NA      131       22.20
132        NA      132       22.71
133        NA      133       24.79
134        NA      134       24.99
135        NA      135       25.29
136        NA      136       25.25
137        NA      137       25.39
138        NA      138       26.16
139        NA      139       26.67
140        NA      140       29.67
141        NA      141       30.29
142        NA      142       30.55
143        NA      143       31.19
144        NA      144       31.96
145        NA      145       32.51
146        NA      146       32.69
147        NA      147       33.45
148        NA      148       34.60
149        NA      149       34.57
150        NA      150       33.48
151        NA      151       32.14
152        NA      152       31.33
153        NA      153       31.20
154        NA      154       31.30
155        NA      155       31.48
156        NA      156       31.57
157        NA      157       31.70
158        NA      158       31.46
159        NA      159       31.45
160        NA      160       31.70
161        NA      161       32.33
162        NA      162       33.15
163        NA      163       33.28
164        NA      164       33.36
165        NA      165       32.61
166        NA      166       30.63
167        NA      167       31.31
168        NA      168       31.57
169        NA      169       33.29
170        NA      170       33.06
171        NA      171       31.96
172        NA      172       29.03
173        NA      173       29.17
174        NA      174       29.14
175        NA      175       29.58
176        NA      176       28.90
177        NA      177       27.91
178        NA      178       27.86
179        NA      179       27.71
180        NA      180       28.02
181        NA      181       29.09
182        NA      182       29.63
183        NA      183       30.15
184        NA      184       30.55
185        NA      185       41.53
186        NA      186       30.03
187        NA      187       29.96
188        NA      188       29.61
189        NA      189       29.46
190        NA      190       29.71
191        NA      191       29.74
192        NA      192       28.76
193        NA      193       27.79
194        NA      194       25.87
195        NA      195       24.59
196        NA      196       24.49
197        NA      197       25.00
198        NA      198       26.43
199        NA      199       26.36
200        NA      200       26.46
201        NA      201       26.45
202        NA      202       26.59
203        NA      203       26.60
204        NA      204       27.21
205        NA      205       27.51
206        NA      206       27.95
207        NA      207       28.18
208        NA      208       28.45
209        NA      209       27.88
210        NA      210       26.33
211        NA      211       21.72
212        NA      212       21.52
213        NA      213       22.78
214        NA      214       22.64
215        NA      215       21.80
216        NA      216       21.22
217        NA      217       20.95
218        NA      218       20.62
219        NA      219       20.52
220        NA      220       20.56
221        NA      221       20.39
222        NA      222       19.05
223        NA      223       19.63
224        NA      224       19.69
225        NA      225       19.81
226        NA      226       18.94
227        NA      227       18.81
228        NA      228       19.01
229        NA      229       19.26
230        NA      230       19.34
231        NA      231       19.46
232        NA      232       19.47
233        NA      233       19.54
234        NA      234       19.74
235        NA      235       20.11
236        NA      236       20.63
237        NA      237       21.01
238        NA      238       21.16
239        NA      239       21.68
240        NA      240       22.20
241        NA      241       22.38
242        NA      242       22.51
243        NA      243       22.82
244        NA      244       23.24
245        NA      245       23.14
246        NA      246       23.24
247        NA      247       23.36
248        NA      248       23.41
249        NA      249       23.13
250        NA      250       22.99
251        NA      251       22.66
252        NA      252       21.64
253        NA      253       20.91
254        NA      254       21.08
255        NA      255       21.19
256        NA      256       21.49
257        NA      257       21.57
258        NA      258       21.30
259        NA      259       21.22
260        NA      260       21.15
261        NA      261       21.08
262        NA      262       21.25
263        NA      263       21.41
264        NA      264       21.32
265        NA      265       21.02
266        NA      266       20.85
267        NA      267       20.80
268        NA      268       20.62
269        NA      269       20.37
270        NA      270       20.46
271        NA      271       20.51
272        NA      272       20.58
273        NA      273       20.64
274        NA      274       20.58
275        NA      275       20.46
276        NA      276       20.25
277        NA      277       20.15
278        NA      278       20.06
279        NA      279       19.62
280        NA      280       19.50
281        NA      281       19.58
282        NA      282       19.67
283        NA      283       19.69
284        NA      284       19.91
285        NA      285       19.92
286        NA      286       19.97
287        NA      287       19.93
288        NA      288       19.67
289        NA      289       19.43
290        NA      290       19.55
291        NA      291       19.41
292        NA      292       19.30
293        NA      293       19.00
294        NA      294       18.75
295        NA      295       18.63
296        NA      296       18.28
297        NA      297       18.07
298        NA      298       17.94
299        NA      299       17.75
300        NA      300       17.70
301        NA      301       17.58
302        NA      302       17.39
303        NA      303       17.19
304        NA      304       17.10
305        NA      305       17.09
306        NA      306       17.06
307        NA      307       16.87
308        NA      308       16.77
309        NA      309       16.54
310        NA      310       16.30
311        NA      311       16.10
312        NA      312       16.01
313        NA      313       16.12
314        NA      314       16.12
315        NA      315       16.02
316        NA      316       15.85
317        NA      317       15.75
318        NA      318       15.56
319        NA      319       15.50
320        NA      320       15.10
321        NA      321       14.89
322        NA      322       14.45
323        NA      323       14.21
324        NA      324       14.00
325        NA      325       13.80
326        NA      326       13.65
327        NA      327       13.29
328        NA      328       13.01
329        NA      329       12.96
330        NA      330       12.77
331        NA      331       12.72
332        NA      332       12.59
333        NA      333       12.51

移動和縮放是次軸的完美轉換。 我遇到的一個問題是,您將魚的深度視為離散的,而氧氣深度是連續的。 在下面的示例中,我使您的魚數據連續。

library(ggplot2)
library(scales)

# Assume text1 and text2 are your example data copied as character vector
# I'm just putting this here to show how I loaded the data
fish <- read.table(text = text1)
oxy  <- read.table(text = text2)

# Make depth a continuous variable
depth <- lapply(data.table::tstrsplit(fish$Depth, "-"), as.numeric)
fish$depth2 <- (depth[[1]] + depth[[2]]) / 2

ggplot(fish, aes(y = depth2)) +
  geom_col(aes(x = ifelse(DayNight == "Night", 1, -1) * Abundance,
               fill = DayNight),
           orientation = "y") +
  # You have to manually transform data for secondary axis
  geom_line(aes(rescale(Averaged.O2, to = c(-1, 1) * max(fish$Abundance)), 
                Depth..m),
            data = oxy, orientation = "y") +
  scale_y_reverse() + # <- puts zero on top
  scale_x_continuous(
    name = "Abundance",
    labels = abs, # <- this is how to show only positives
    # Secondary axis should have inverse transformation
    sec.axis = sec_axis(
      ~ rescale(.x, from = c(-1, 1) * max(fish$Abundance), 
                range(oxy$Averaged.O2)),
      name = "Oxygen"
    )
  )

在此處輸入圖片說明

暫無
暫無

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

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