设置y轴标签位置ggplot2

时间:2015-08-17 16:05:44

标签: r plot ggplot2

我正在寻找使用ggplot2的图形帮助。 我正在针对相同的变量C绘制不同的变量(A和B)。变量A具有从-20到20的值,而变量B具有从-2到2的值。当使用ggplot2时,y轴标签是进一步的远离变量A的轴线而不是变量B,因为20占用的空间大于2,标签与数字的距离相同。

我希望两者都有相同的距离。是否有可能定义轴标签和线之间的距离?

我尝试使用主题(axis.title.y = element_text(vjust =)),但这使得设置距离非常困难。

我也尝试在我的yaxis标题之后添加“\ n”,如此处所建议的那样(https://groups.google.com/forum/#!topic/ggplot2/mK9DR3dKIBU),但这也无法解决我的问题。

使用PlantGrowth数据的示例:

  bp <- ggplot(PlantGrowth, aes(x=group, y=weight)) +
        geom_boxplot()+
        theme_classic(base_size=16) +
        ylim(c(3,7))+
        coord_fixed(ratio=(3)/(4))

bp1000 <- ggplot(PlantGrowth, aes(x=group, y=weight*1000)) +
        geom_boxplot()+
        theme_classic(base_size=16) +
        ylim(c(3000,7000))+
        coord_fixed(ratio=(3)/(4000))

你会看到y轴的标签(“重量”)离bp1000的轴比bp更远,即使使用coord_fixed()也很容易保持绘图区域相同。

如何定义bp的ylabel距离应与bp1000相同(即更长)。

1 个答案:

答案 0 :(得分:0)

您可以手动将宽度设置为物理单位(在此示例中为1英寸,为了夸大)

g1 <- ggplotGrob(bp)
g2 <- ggplotGrob(bp1000)
g1$widths[3] <- g2$widths[3] <- list(unit(1,"in"))
grid.newpage()
grid.arrange(g1, g2)

enter image description here