增加轴刻度的数量

我正在为某些数据生成图表,但滴答的数量太小,我需要读取更精确

有没有办法增加在ggplot2轴蜱的数量?

我知道我可以告诉ggplot使用vector作为坐标轴,但是我想要的是增加所有数据的滴答数。 换句话说,我想从数据中计算滴答数。

可能ggplot做一些内部algorithm,但我找不到它是如何做,根据我想要改变。

您可以通过修改scale_x_continuous和/或scale_y_continuous覆盖ggplots的默认比例。 例如:

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

给你这个:

在这里输入图像描述

而覆盖的比例可以给你这样的事情:

 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)) 

在这里输入图像描述

如果你想简单地“放大”一个图的特定部分,分别看xlim()ylim() 。 在这里也可以find好的见解来理解其他论点。

你可以使用内置的prettyfunction:

 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)) 

基于Daniel Krizian的评论 ,您还可以使用自动导入的scales库中的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)) 

所有你需要做的是插入想要的数量。

您可以提供一个函数参数来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))