Wie kann ich den Abstand von Häkchen auf der Achse eines Diagramms ändern?
Welche Parameter soll ich mit Basisplot oder mit verwenden rgl
?
Antworten:
Es gibt mindestens zwei Möglichkeiten, dies im Basisdiagramm zu erreichen (meine Beispiele gelten für die x-Achse, funktionieren jedoch für die y-Achse gleich):
Verwenden Sie par(xaxp = c(x1, x2, n))
oder plot(..., xaxp = c(x1, x2, n))
, um die Position ( x1
& x2
) der extremen Häkchen und die Anzahl der Intervalle zwischen den Häkchen ( n
) zu definieren. Dementsprechend n+1
wird die Anzahl der Häkchen gezogen. (Dies funktioniert nur, wenn Sie keine logarithmische Skala verwenden. Informationen zum Verhalten mit logarithmischen Skalen finden Sie unter ?par
.)
Sie können das Zeichnen der Achse vollständig unterdrücken und die Häkchen später mit hinzufügen axis()
.
Um das Zeichnen der Achse zu unterdrücken, verwenden Sie plot(... , xaxt = "n")
.
Dann rufen Sie axis()
mit side
, at
und labels
: axis(side = 1, at = v1, labels = v2)
. Unter side
Bezugnahme auf die Seite der Achse (1 = x-Achse, 2 = y-Achse) ist v1
dies ein Vektor, der die Position der Ticks enthält (z. B. c(1, 3, 5)
wenn Ihre Achse zwischen 0 und 6 liegt und Sie drei Markierungen wünschen) v2
Ein Vektor, der die Beschriftungen für die angegebenen Häkchen enthält (muss dieselbe Länge haben wie v1
z c("group a", "group b", "group c")
. B. ). Sehen ?axis
und meine aktualisierte Antwort auf einen Beitrag stats.stackexchange für ein Beispiel dieses Verfahrens .
formatC
oder prettyNum
erstellen Sie Zeichenvektoren, an die übergeben werden soll labels
. ZB:formatC(seq(0,2,0.5), digits = 1, format = "f")
n
tatsächlich die Anzahl der Häkchen ist -1
. Ich wollte Häkchen von 1
bis 9
und musste setzen, xaxp = c(1, 9, 8)
sonst würde ich nicht das gewünschte Ergebnis erzielen.
par(xaxp..)
. Es funktioniert nur, wenn ich es in dieplot(xaxp...)
Bei Basisgrafiken ist es am einfachsten, die Zeichenfunktionen daran zu hindern, Achsen zu zeichnen, und sie dann selbst zu zeichnen.
plot(1:10, 1:10, axes = FALSE)
axis(side = 1, at = c(1,5,10))
axis(side = 2, at = c(1,3,7,10))
box()
las
in? Par an, der einem Aufruf von hinzugefügt werden kann axis()
und der die Ausrichtung der Tick-Beschriftungen steuert. ZB axis(side = 1, at = c(1,5,10), las = 2)
. Vielleicht möchten Sie untersuchen, ob es eine axis()
Funktion für Chron-Objekte gibt, oder die Verwendung der Datums- / Uhrzeitklassen von R in Betracht ziehen, die bereits axis()
Funktionen haben (z. B. axis.Date()
für die Klasse '"Datum"').
Ich habe einen Datensatz mit der Zeit als x-Achse und der Intensität als y-Achse. Ich müsste zuerst alle Standardachsen mit Ausnahme der Achsenbeschriftungen löschen mit:
plot(Time,Intensity,axes=F)
Dann baue ich die Elemente der Handlung neu auf mit:
box() # create a wrap around the points plotted
axis(labels=NA,side=1,tck=-0.015,at=c(seq(from=0,to=1000,by=100))) # labels = NA prevents the creation of the numbers and tick marks, tck is how long the tick mark is.
axis(labels=NA,side=2,tck=-0.015)
axis(lwd=0,side=1,line=-0.4,at=c(seq(from=0,to=1000,by=100))) # lwd option sets the tick mark to 0 length because tck already takes care of the mark
axis(lwd=0,line=-0.4,side=2,las=1) # las changes the direction of the number labels to horizontal instead of vertical.
So at = c(...)
gibt die Sammlung von Positionen der Skalenmarkierungen zu setzen. Hier möchte ich die Noten auf 0, 100, 200, ..., 1000 setzen. seq(from =...,to =...,by =...)
Ich habe die Wahl zwischen Grenzwerten und Inkrementen.
Und wenn Sie nicht möchten, dass R Dezimalstellen oder Nullen hinzufügt, können Sie verhindern, dass es die x-Achse oder die y-Achse oder beides mit ... axt zeichnet. Anschließend können Sie Ihre eigenen Häkchen und Beschriftungen hinzufügen:
plot(x, y, xaxt="n")
plot(x, y, yaxt="n")
axis(1 or 2, at=c(1, 5, 10), labels=c("First", "Second", "Third"))
flag
mit yaxt=flag
ABER ein- und ausschalten, ABER der Trick ist, wenn Sie Standardbeschriftungen aktivieren, dann festlegen flag <- "s"
und wenn Sie die Standardbeschriftungen nicht verwenden möchten, verwenden Sie flag <- "n"
(Hinzufügen, da ich a während "s" zu finden)
Ich habe gerade das Hmisc- Paket entdeckt:
Enthält viele nützliche Funktionen für die Datenanalyse, allgemeine Grafiken, Dienstprogramme, Funktionen zum Berechnen der Stichprobengröße und -leistung, zum Importieren und Kommentieren von Datensätzen, zum Eingeben fehlender Werte, zum erweiterten Erstellen von Tabellen, zum Clustering von Variablen, zur Manipulation von Zeichenfolgen und zur Konvertierung von R-Objekten in LaTeX und HTML-Code und Neukodierung von Variablen.
library(Hmisc)
plot(...)
minor.tick(nx=10, ny=10) # make minor tick marks (without labels) every 10th