@@ -45,71 +45,129 @@ NULL
45
45
# ' @rdname scale_date
46
46
# ' @export
47
47
scale_x_date <- function (name = waiver(),
48
- breaks = waiver(), date_breaks = waiver(),
49
- labels = waiver(), date_labels = waiver(),
50
- minor_breaks = waiver(), date_minor_breaks = waiver(),
51
- limits = NULL , expand = waiver(), position = " bottom" ) {
48
+ breaks = waiver(),
49
+ date_breaks = waiver(),
50
+ labels = waiver(),
51
+ date_labels = waiver(),
52
+ minor_breaks = waiver(),
53
+ date_minor_breaks = waiver(),
54
+ limits = NULL ,
55
+ expand = waiver(),
56
+ position = " bottom" ) {
52
57
53
- scale_datetime(c(" x" , " xmin" , " xmax" , " xend" ), " date" ,
58
+ datetime_scale(
59
+ c(" x" , " xmin" , " xmax" , " xend" ),
60
+ " date" ,
54
61
name = name ,
55
- breaks = breaks , date_breaks = date_breaks ,
56
- labels = labels , date_labels = date_labels ,
57
- minor_breaks = minor_breaks , date_minor_breaks = date_minor_breaks ,
58
- limits = limits , expand = expand , position = position
62
+ palette = identity ,
63
+ breaks = breaks ,
64
+ date_breaks = date_breaks ,
65
+ labels = labels ,
66
+ date_labels = date_labels ,
67
+ minor_breaks = minor_breaks ,
68
+ date_minor_breaks = date_minor_breaks ,
69
+ guide = " none" ,
70
+ limits = limits ,
71
+ expand = expand ,
72
+ position = position
59
73
)
60
74
}
61
75
62
76
# ' @rdname scale_date
63
77
# ' @export
64
78
scale_y_date <- function (name = waiver(),
65
- breaks = waiver(), date_breaks = waiver(),
66
- labels = waiver(), date_labels = waiver(),
67
- minor_breaks = waiver(), date_minor_breaks = waiver(),
68
- limits = NULL , expand = waiver(), position = " left" ) {
79
+ breaks = waiver(),
80
+ date_breaks = waiver(),
81
+ labels = waiver(),
82
+ date_labels = waiver(),
83
+ minor_breaks = waiver(),
84
+ date_minor_breaks = waiver(),
85
+ limits = NULL ,
86
+ expand = waiver(),
87
+ position = " left" ) {
69
88
70
- scale_datetime(c(" y" , " ymin" , " ymax" , " yend" ), " date" ,
89
+ datetime_scale(
90
+ c(" y" , " ymin" , " ymax" , " yend" ),
91
+ " date" ,
71
92
name = name ,
72
- breaks = breaks , date_breaks = date_breaks ,
73
- labels = labels , date_labels = date_labels ,
74
- minor_breaks = minor_breaks , date_minor_breaks = date_minor_breaks ,
75
- limits = limits , expand = expand , position = position
93
+ palette = identity ,
94
+ breaks = breaks ,
95
+ date_breaks = date_breaks ,
96
+ labels = labels ,
97
+ date_labels = date_labels ,
98
+ minor_breaks = minor_breaks ,
99
+ date_minor_breaks = date_minor_breaks ,
100
+ guide = " none" ,
101
+ limits = limits ,
102
+ expand = expand ,
103
+ position = position
76
104
)
77
105
}
78
106
79
107
# ' @export
80
108
# ' @rdname scale_date
81
109
scale_x_datetime <- function (name = waiver(),
82
- breaks = waiver(), date_breaks = waiver(),
83
- labels = waiver(), date_labels = waiver(),
84
- minor_breaks = waiver(), date_minor_breaks = waiver(),
85
- timezone = NULL , limits = NULL , expand = waiver(),
110
+ breaks = waiver(),
111
+ date_breaks = waiver(),
112
+ labels = waiver(),
113
+ date_labels = waiver(),
114
+ minor_breaks = waiver(),
115
+ date_minor_breaks = waiver(),
116
+ timezone = NULL ,
117
+ limits = NULL ,
118
+ expand = waiver(),
86
119
position = " bottom" ) {
87
120
88
- scale_datetime(c(" x" , " xmin" , " xmax" , " xend" ), " time" ,
121
+ datetime_scale(
122
+ c(" x" , " xmin" , " xmax" , " xend" ),
123
+ " time" ,
89
124
name = name ,
90
- breaks = breaks , date_breaks = date_breaks ,
91
- labels = labels , date_labels = date_labels ,
92
- minor_breaks = minor_breaks , date_minor_breaks = date_minor_breaks ,
93
- timezone = timezone , limits = limits , expand = expand , position = position
125
+ palette = identity ,
126
+ breaks = breaks ,
127
+ date_breaks = date_breaks ,
128
+ labels = labels ,
129
+ date_labels = date_labels ,
130
+ minor_breaks = minor_breaks ,
131
+ date_minor_breaks = date_minor_breaks ,
132
+ timezone = timezone ,
133
+ guide = " none" ,
134
+ limits = limits ,
135
+ expand = expand ,
136
+ position = position
94
137
)
95
138
}
96
139
97
140
98
141
# ' @rdname scale_date
99
142
# ' @export
100
143
scale_y_datetime <- function (name = waiver(),
101
- breaks = waiver(), date_breaks = waiver(),
102
- labels = waiver(), date_labels = waiver(),
103
- minor_breaks = waiver(), date_minor_breaks = waiver(),
104
- timezone = NULL , limits = NULL , expand = waiver(),
144
+ breaks = waiver(),
145
+ date_breaks = waiver(),
146
+ labels = waiver(),
147
+ date_labels = waiver(),
148
+ minor_breaks = waiver(),
149
+ date_minor_breaks = waiver(),
150
+ timezone = NULL ,
151
+ limits = NULL ,
152
+ expand = waiver(),
105
153
position = " left" ) {
106
154
107
- scale_datetime(c(" y" , " ymin" , " ymax" , " yend" ), " time" ,
155
+ datetime_scale(
156
+ c(" y" , " ymin" , " ymax" , " yend" ),
157
+ " time" ,
108
158
name = name ,
109
- breaks = breaks , date_breaks = date_breaks ,
110
- labels = labels , date_labels = date_labels ,
111
- minor_breaks = minor_breaks , date_minor_breaks = date_minor_breaks ,
112
- timezone = timezone , limits = limits , expand = expand , position = position
159
+ palette = identity ,
160
+ breaks = breaks ,
161
+ date_breaks = date_breaks ,
162
+ labels = labels ,
163
+ date_labels = date_labels ,
164
+ minor_breaks = minor_breaks ,
165
+ date_minor_breaks = date_minor_breaks ,
166
+ timezone = timezone ,
167
+ guide = " none" ,
168
+ limits = limits ,
169
+ expand = expand ,
170
+ position = position
113
171
)
114
172
}
115
173
@@ -168,12 +226,13 @@ scale_y_time <- function(name = waiver(),
168
226
)
169
227
}
170
228
171
- scale_datetime <- function (aesthetics , trans ,
229
+ # # rename to datetime_scale
230
+ datetime_scale <- function (aesthetics , trans , palette ,
172
231
breaks = pretty_breaks(), minor_breaks = waiver(),
173
232
labels = waiver(), date_breaks = waiver(),
174
233
date_labels = waiver(),
175
234
date_minor_breaks = waiver(), timezone = NULL ,
176
- ... ) {
235
+ guide = " legend " , ... ) {
177
236
178
237
179
238
# Backward compatibility
@@ -197,20 +256,35 @@ scale_datetime <- function(aesthetics, trans,
197
256
date = " date" ,
198
257
time = " datetime"
199
258
)
200
- scale_class <- switch (trans ,
201
- date = ScaleContinuousDate ,
202
- time = ScaleContinuousDatetime
203
- )
259
+
260
+ # x/y position aesthetics should use ScaleContinuousDate or
261
+ # ScaleContinuousDatetime; others use ScaleContinuous
262
+ if (all(aesthetics %in% c(" x" , " xmin" , " xmax" , " xend" , " y" , " ymin" , " ymax" , " yend" ))) {
263
+ scale_class <- switch (
264
+ trans ,
265
+ date = ScaleContinuousDate ,
266
+ time = ScaleContinuousDatetime
267
+ )
268
+ } else {
269
+ scale_class <- ScaleContinuous
270
+ }
271
+
204
272
sc <- continuous_scale(
205
- aesthetics , name , identity ,
206
- breaks = breaks , minor_breaks = minor_breaks , labels = labels ,
207
- guide = " none" , trans = trans , ... , super = scale_class
273
+ aesthetics ,
274
+ name ,
275
+ palette = palette ,
276
+ breaks = breaks ,
277
+ minor_breaks = minor_breaks ,
278
+ labels = labels ,
279
+ guide = guide ,
280
+ trans = trans ,
281
+ ... ,
282
+ super = scale_class
208
283
)
209
284
sc $ timezone <- timezone
210
285
sc
211
286
}
212
287
213
-
214
288
# ' @rdname ggplot2-ggproto
215
289
# ' @format NULL
216
290
# ' @usage NULL
0 commit comments