ggplot2条形图

时间:2017-06-16 13:56:24

标签: r ggplot2

我想使条形图的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)

2 个答案:

答案 0 :(得分:1)

这个怎么样:

library(ggplot2)
library(data.table)
set.seed(123)

my.data = data.table(x = 1:10, y = rnorm(10,0, 2))

my.plot <- ggplot(data = my.data)+aes(x=x, y=y) +
  geom_bar(stat="identity")+ylim((0-abs(max(my.data$y))),(0+max(abs(my.data$y))))

my.plot

答案 1 :(得分:0)

您可能需要考虑使用ceiling

set.seed(123)
library(ggplot2)
library(data.table)

        dT <- data.table(x = 1:10, y = rnorm(10,0, 2))
        my.plot <- ggplot(dT, aes(x=x, y=y)) +
                   geom_bar(stat="identity") + 
                   ylim(-ceiling(max(abs(dT$y))), ceiling(max(abs(dT$y))))

这会给你:

 > my.plot

             https://i.stack.imgur.com/rMMzl.png