Achsenmarkierungen und Achsenlinien separat auf dem R-Gitter-Xyplot steuern

Wie kann ich vorgehen, um die Schachtel um eine zu entfernen?xyplotunter Beibehaltung der Markierungen der Achsenskala? Im Geiste von Edward Tuftes minimalistischer Ästhetik der Datengrafik sind diese Achsenlinien "Nicht-Daten-Tinte" und können (sollten?) "Gelöscht" werden.

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

Es scheint, dass die Trellis-Anzeigeparameter (z.axis.line$col) Kontrollieren Sie sowohl die Achsenlinien als auch die Achsenmarkierungen zusammen:

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

... was nicht das gewünschte Ergebnis ist. Es sieht also nicht so aus, als gäbe es eine einfache Möglichkeit, die Leitungen auszuschalten, während Sie die Box verlassen.

Das Beste, was ich mir einfallen lassen konnte, ist ein Brute-Force-Hack, bei dem ich die Häkchen von Hand bauepanel.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)
       }
       )

Dies ist in der Nähe des gewünschten Ergebnisses, aber es ist ziemlich viel Fummelei erforderlich, um die Teilstriche auf eine angemessene Länge zu bringen und einen "schönen" Abstand von den Datenpunkten zu versetzen. Diese Werte werden nicht von einer Grafik zur nächsten übertragen. Beachten Sie außerdem, dass die Achsenbeschriftungen jetzt zu weit von den Teilstrichen entfernt sind. Ich bin mir sicher, dass es eine Möglichkeit gibt, dieses Auffüllen zu reduzieren, aber das würde den Code nur noch hässlicher und weniger portabel machen.

Wie kann man also vorgehen, um nur die Linien zu unterdrücken, die das "Kästchen" um den Plotbereich bilden, während die Markierungen und Achsenbeschriftungen intakt bleiben? Bonuspunkte, wenn dieser Ansatz auch verwendet werden könnte, um einige, aber nicht alle Linien zu unterdrücken (z. B. die linke und untere Linie zu verlassen, aber die obere und rechte Linie zu unterdrücken).

Antworten auf die Frage(2)

Ihre Antwort auf die Frage