Управление тиками осей и осевыми линиями отдельно на решетчатом xyplot

Как я могу удалить коробку вокругxyplot, сохраняя отметки шкалы оси? В духе минималистической графической эстетики данных Эдварда Туфте эти линии осей являются «чернилами без данных» и могут (должны?) Быть «стерты».

library(lattice)
my.df <- data.frame(x=-10:10)
my.df$y <- my.df$x^2
xyplot(y~x,data=my.df)

Кажется, что параметры отображения решетки (например,axis.line$col) управлять линиями осей и галочками осей вместе:

xyplot(y~x,data=my.df,
       par.settings=list(axis.line=list(col="transparent")))

... что не является желаемым результатом, поэтому не похоже, что есть простой способ отключить линии, оставляя поле.

Лучшее, что я смог придумать, - это взлом грубой силы, где я строю галочки вручную, используяpanel.segments:

at.x=pretty(c(-10,10))
at.y=pretty(c(0,100))
xyplot(y~x,data=my.df,
       par.settings=list(axis.line=list(col="transparent")),
       scales=list(x=list(at=at.x,labels=at.x),
       y=list(at=at.y,labels=at.y)),
       panel=function(...){
           panel.xyplot(...)
           panel.segments(x0=at.x,x1=at.x,y0=-4,y1=-2)
           panel.segments(x0=-11.5,x1=-11,y0=at.y,y1=at.y)
       }
       )

Это близко к желаемому результату, но требуется немало хлопот, чтобы сделать отметки приемлемой длины и сместить «хорошее» расстояние от точек данных. Эти значения не будут переводиться из одного графика в другой. Кроме того, обратите внимание, что метки осей теперь расположены слишком далеко от отметок. Я уверен, что есть способ уменьшить это заполнение, но это только сделает код еще более уродливым и менее переносимым.

Итак, как можно подавить только те линии, которые составляют «прямоугольник» вокруг области графика, оставив при этом отметки и метки осей нетронутыми? Бонусные баллы, если этот подход также можно использовать для подавления некоторых, но не всех линий (например, оставить левую и нижнюю линии, но подавить верхнюю и правую линии).

Ответы на вопрос(2)

Ваш ответ на вопрос