增加轴刻度的数量
我正在为某些数据生成图表,但滴答的数量太小,我需要读取更精确 。
有没有办法增加在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好的见解来理解其他论点。
你可以使用内置的pretty
function:
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))