remove - Erhöhen Sie die Anzahl der Achsenticks




plot title r (3)

Ich erzeuge Diagramme für einige Daten, aber die Anzahl der Ticks ist zu klein, ich brauche mehr Genauigkeit beim Lesen.

Gibt es eine Möglichkeit, die Anzahl der Achsen-Ticks in ggplot2 zu erhöhen?

Ich weiß, dass ich ggplot sagen kann, einen Vektor als Achsen-Ticks zu verwenden, aber ich möchte die Anzahl der Ticks für alle Daten erhöhen. Mit anderen Worten, ich möchte, dass die Tick-Nummer aus den Daten berechnet wird.

Möglicherweise ggplot dies intern mit einem Algorithmus, aber ich konnte nicht finden, wie es das tut, um zu ändern, was ich will.


Sie können die integrierte pretty Funktion verwenden:

ggplot(dat, aes(x,y)) + geom_point() +
scale_x_continuous(breaks = pretty(dat$x, n = 10)) +
scale_y_continuous(breaks = pretty(dat$y, n = 10))

Basierend auf Daniel Krizians Kommentar können Sie auch die Funktion pretty_breaks aus der pretty_breaks verwenden, die automatisch importiert wird:

ggplot(dat, aes(x,y)) + geom_point() +
scale_x_continuous(breaks = scales::pretty_breaks(n = 10)) +
scale_y_continuous(breaks = scales::pretty_breaks(n = 10))

Sie müssen lediglich die Anzahl der gewünschten Ticks eingeben.


Sie können ein Funktionsargument zum Skalieren bereitstellen, und ggplot verwendet diese Funktion, um die Tick-Positionen zu berechnen.

library(ggplot2)
dat <- data.frame(x = rnorm(100), y = rnorm(100))
number_ticks <- function(n) {function(limits) pretty(limits, n)}

ggplot(dat, aes(x,y)) +
  geom_point() +
  scale_x_continuous(breaks=number_ticks(10)) +
  scale_y_continuous(breaks=number_ticks(10))

Sie können die Standardskalen von scale_x_continuous überschreiben, indem Sie scale_x_continuous und / oder scale_y_continuous . Beispielsweise:

library(ggplot2)
dat <- data.frame(x = rnorm(100), y = rnorm(100))

ggplot(dat, aes(x,y)) +
  geom_point()

Gibt dir das:

Und das Überschreiben der Skalen kann dir so etwas geben:

ggplot(dat, aes(x,y)) +
  geom_point() +
  scale_x_continuous(breaks = round(seq(min(dat$x), max(dat$x), by = 0.5),1)) +
  scale_y_continuous(breaks = round(seq(min(dat$y), max(dat$y), by = 0.5),1))

Wenn Sie einen bestimmten Teil eines Plots einfach "vergrößern" möchten, sehen Sie sich xlim() und ylim() an. Gute Einsichten können auch hier gefunden here , um auch die anderen Argumente zu verstehen.





ggplot2