我想把柱状图的y轴设置为对称的,这样更容易看出正负变化的大小。否则有点失真。我已经有可行的代码了,尽管有些笨拙,但我认为如果我能直接在第一个ggplot()
调用中完成这个操作就太好了。也就是说,ylim
直接设置成对称的。
set.seed(123)
my.plot <- ggplot( data = data.table(x = 1:10,
y = rnorm(10,0, 2)), aes(x=x, y=y)) +
geom_bar(stat="identity")
rangepull <- layer_scales(my.plot)$y
newrange <- max(abs(rangepull$range$range))
my.plot +
ylim(newrange*-1, newrange)
ggplot()
之前定义了数据集,那么就没有问题,但是你想在绘图函数内部定义数据吗?这真的有必要吗? - R18data
对象,然后将代码+ ylim(1.05*(-max(abs(data$y))), 1.05*max(abs(data$y)))
添加到ggplot()
中。 - R18mydata
对象可以使用(比如它是一个很长的管道链的终点),那么你可以使用像这样的语句:mystartingdata %>% some_dplyr_verbs(...) %>% {ggplot(data = .) + geom_col(aes(x=x, y=y)) + ylim(1.05*(-max(abs(.$y))), 1.05*max(abs(.$y)))}
。花括号让你在整个ggplot
调用中使用.
代词。 - Brian