Betrachten Sie das folgende Diagramm:
x <- 1:100
y1 <- rnorm(100)
y2 <- rnorm(100)+100
par(mar=c(5,5,5,5))
plot(x,y1,pch=0,type="b",col="red",yaxt="n",ylim=c(-8,2),ylab="")
axis(side=2, at=c(-2,0,2))
mtext("red line", side = 2, line=2.5, at=0)
par(new=T)
plot(x,y2,pch=1,type="b",col="blue",yaxt="n",ylim=c(98,108), ylab="")
axis(side=4, at=c(98,100,102), labels=c("98%","100%","102%"))
mtext("blue line", side=4, line=2.5, at=100)
Wie kann ich die automatisch generierten Ränder entfernen und nur die Achsenlinien beibehalten, um einen Tufte-Stil zu erzielen?
r
data-visualization
Hugo Sereno Ferreira
quelle
quelle
bty
Argument in an . Sie können dieses Argument in Ihrem Aufruf an übergeben .?par
bty="n"
plot
Antworten:
Fügen Sie
bty="n"
beide Plotbefehle hinzu.Fügen Sie
frame.plot=FALSE
für Zeitreihen den gleichen Effekt hinzu.Für schickere Tufte-Äxte siehe http://www.cl.cam.ac.uk/~sjm217/projects/graphics/
quelle
Dies ist ganz einfach, Sie geben nur das Argument an
axes=FALSE
. Erwägen:Beachten Sie, dass dies für Histogramme gleichermaßen gut funktioniert:
quelle
Wenn du benutzt
Vor dem Aufruf von Handlung, die es für den Zoo beheben wird. Es kann auch für eine Vielzahl von Situationen behoben werden, in denen es nicht an den Plotbefehl übergeben werden kann.
(Check out bty-Option in der par () -Hilfe für andere Arten von Frames für den Plot)
quelle
Ich beantworte die allgemeinere Frage, Grenzen in Parzellen zu entfernen, ohne auf Tufte Bezug zu nehmen.
Für ein Histogramm habe ich nicht gefunden, dass btn = 'n' die Grenze losgeworden ist.
Eine Lösung, die für Histogramme funktioniert und für alle Diagrammtypen funktionieren sollte, besteht darin, den Linientyp für den Rahmen auf unsichtbar zu setzen: lty = "blank"
quelle