@@ -187,28 +187,27 @@ GuideAxisLogticks <- ggproto(
187
187
# Reconstruct original range
188
188
limits <- transformation $ inverse(scale $ get_limits())
189
189
has_negatives <- any(limits < = 0 )
190
-
191
- if (! has_negatives ) {
192
- start <- floor(log10(min(limits ))) - 1L
193
- end <- ceiling(log10(max(limits ))) + 1L
194
- } else {
195
- params $ negative_small <- params $ negative_small %|| % 0.1
196
- start <- floor(log10(abs(params $ negative_small )))
197
- end <- ceiling(log10(max(abs(limits )))) + 1L
190
+ if (has_negatives ) {
191
+ large <- max(abs(limits ))
192
+ small <- params $ negative_small %|| % 0.1
193
+ limits <- sort(c(small * 10 , large ))
198
194
}
199
195
196
+ start <- floor(log10(min(limits ))) - 1L
197
+ end <- ceiling(log10(max(limits ))) + 1L
198
+
200
199
# Calculate tick marks
201
- tens <- 10 ^ seq(start , end , by = 1 )
200
+ tens <- 10 ^ seq(start , end , by = 1L )
202
201
fives <- tens * 5
203
202
ones <- as.vector(outer(setdiff(2 : 9 , 5 ), tens ))
204
203
205
204
if (has_negatives ) {
206
205
# Filter and mirror ticks around 0
207
- tens <- tens [tens > = params $ negative_small ]
206
+ tens <- tens [tens > = small ]
208
207
tens <- c(tens , - tens , 0 )
209
- fives <- fives [fives > = params $ negative_small ]
208
+ fives <- fives [fives > = small ]
210
209
fives <- c(fives , - fives )
211
- ones <- ones [ones > = params $ negative_small ]
210
+ ones <- ones [ones > = small ]
212
211
ones <- c(ones , - ones )
213
212
}
214
213
0 commit comments