如何在R中的ggplot2中设置y轴刻度标签的宽度?

时间:2016-01-23 19:55:14

标签: r ggplot2

我想在R中的ggplot2图的垂直数组中对齐绘图面板.Y轴刻度标签的最大宽度因图形而异,打破了这种对齐,如下面的示例代码所示。

我尝试了各种plot,panel和axis.text边距选项但没有成功,并且无法找到控制y轴刻度标签宽度的选项。

指导赞赏。

#install.packages(c("ggplot2", "gridExtra", "reshape2"), dependencies = TRUE)
require(ggplot2)
require(gridExtra)
require(reshape2)

v <- 1:5
data1 <- data.frame(x=v, y=v)
data2 <- data.frame(x=v, y=1000*v)
plot1 <- ggplot(data=melt(data1, id='x'), mapping=aes_string(x='x', y='value')) + geom_line()
plot2 <- ggplot(data=melt(data2, id='x'), mapping=aes_string(x='x', y='value')) + geom_line()
grid.arrange(plot1, plot2, ncol=1) 

3 个答案:

答案 0 :(得分:4)

您可以使用库plot_grid()中的函数cowplot来对齐图

# install.packages(c("ggplot2", "cowplot", "reshape2"), dependencies = TRUE)
library(cowplot)
plot_grid(plot1,plot2,ncol=1,align="v")

enter image description here

答案 1 :(得分:2)

这类似于你的工作:

data1$Data <- "data1"
data2$Data <- "data2"
data3 <- rbind(data1, data2)
ggplot(data=data3, aes(x=x, y=y)) + geom_line() + facet_grid(Data~., scales = "free_y")

enter image description here

答案 2 :(得分:0)

像这样? (以下代码)

enter image description here

# install.packages(c("ggplot2", "gridExtra", "reshape2"), dependencies = TRUE)
require(ggplot2)
require(gridExtra)
require(reshape2)

v <- 1:5
data1 <- data.frame(x=v, y=v)
data2 <- data.frame(x=v, y=1000*v)
plot1 <- ggplot(data=melt(data1, id='x'), mapping=aes_string(x='x', y='value')) + geom_line() + scale_y_continuous(breaks=NULL)
plot2 <- ggplot(data=melt(data2, id='x'), mapping=aes_string(x='x', y='value')) + geom_line() + scale_y_continuous(breaks=c(1000,2000))
grid.arrange(plot1, plot2, ncol=1)