Cha*_*ase 172
您可以通过修改scale_x_continuous和/或覆盖ggplots默认比例scale_y_continuous.例如:
library(ggplot2)
dat <- data.frame(x = rnorm(100), y = rnorm(100))
ggplot(dat, aes(x,y)) +
geom_point()
Run Code Online (Sandbox Code Playgroud)
给你这个:

覆盖尺度可以给你这样的东西:
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))
Run Code Online (Sandbox Code Playgroud)

如果您只想"缩放"绘图的特定部分,请分别查看xlim()和ylim().在这里也可以找到好的见解来理解其他论点.
slh*_*hck 151
您可以使用内置pretty_breaks功能:
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))
Run Code Online (Sandbox Code Playgroud)
根据Daniel Krizian的评论,您还可以使用库中的scales函数,该n函数是自动导入的:
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))
Run Code Online (Sandbox Code Playgroud)
您所要做的就是插入所需的刻度数.
cro*_*ing 62
您可以提供函数参数scale,ggplot将使用该函数计算刻度位置.
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))
Run Code Online (Sandbox Code Playgroud)
Tun*_*ung 24
从 v3.3.0 开始,ggplot2有一个选项n.breaks可以为scale_x_continuous和自动生成中断scale_y_continuous
library(ggplot2)
plt <- ggplot(mtcars, aes(x = mpg, y = disp)) +
geom_point()
plt +
scale_x_continuous(n.breaks = 5)
Run Code Online (Sandbox Code Playgroud)
plt +
scale_x_continuous(n.breaks = 10) +
scale_y_continuous(n.breaks = 10)
Run Code Online (Sandbox Code Playgroud)
此外,
ggplot(dat, aes(x,y)) +
geom_point() +
scale_x_continuous(breaks = seq(min(dat$x), max(dat$x), by = 0.05))
Run Code Online (Sandbox Code Playgroud)
适用于分箱或离散缩放的 x 轴数据(即,不需要舍入)。