У меня есть некоторые данные, которые показывают геометрические отношения, но имеют выбросы. Например:
x = seq(0.1, 1, 0.01)
dat = data.frame(x=x, y=10^x)
dat[50:60, 2] = 10
qplot(x, y, data=dat, geom='line')
Я хотел бы построить это, используя преобразование журнала, и увеличив часть данных. Я знаю, что я могу сделать первую часть с coord_trans(y='log10')
, или вторую часть с coord_cartesian(ylim=c(2,8))
, но я не смог их объединить. Кроме того, мне нужно сохранить эти точки, так что просто отсечение их с помощью scale_y_continuous(limits=c(2,8))
не будет работать для меня.
Есть ли способ сделать это, не прибегая к следующему ужасному взлому? Возможно, недокументированный способ пропускать пределы coord_trans
?
pow10 <- function(x) as.character(10^x)
qplot(x, log10(y), data=dat, geom='line') +
scale_y_continuous(breaks=log10(seq(2,8,2)), formatter='pow10') +
coord_cartesian(ylim=log10(c(2,8)))