相关疑难解决方法(0)

在ggplot中对齐绘图区域

我正在尝试使用grid.arrange在ggplot生成的同一页面上显示多个图形.这些图使用相同的x数据但具有不同的y变量.由于y数据具有不同的比例,因此图表具有不同的尺寸.

我尝试在ggplot2中使用各种主题选项来更改绘图大小并移动y轴标签,但没有一个能够对齐绘图.我想将这些图排列成2 x 2的正方形,这样每个图都是相同的大小,x轴对齐.

这是一些测试数据:

A <- c(1,5,6,7,9)
B <- c(10,56,64,86,98)
C <- c(2001,3333,5678,4345,5345)
D <- c(13446,20336,24333,34345,42345)
L <- c(20,34,45,55,67)
M <- data.frame(L, A, B, C, D)
Run Code Online (Sandbox Code Playgroud)

我用来绘制的代码:

x1 <- ggplot(M, aes(L, A,xmin=10,ymin=0)) + geom_point() + stat_smooth(method='lm')
x2 <- ggplot(M, aes(L, B,xmin=10,ymin=0)) + geom_point() + stat_smooth(method='lm')
x3 <- ggplot(M, aes(L, C,xmin=10,ymin=0)) + geom_point() + stat_smooth(method='lm')
x4 <- ggplot(M, aes(L, D,xmin=10,ymin=0)) + geom_point() + stat_smooth(method='lm')
grid.arrange(x1,x2,x3,x4,nrow=2)
Run Code Online (Sandbox Code Playgroud)

如果运行此代码,您将看到由于y轴单位的长度较大,底部两个图的绘图区域较小.

如何使实际绘图窗口相同?

r ggplot2

21
推荐指数
3
解决办法
8641
查看次数

使用 grid.arrange 缩小和对齐图

我有三个图,我想堆叠它们,缩小底部的 2 个,并确保它们垂直对齐。我可以做一个或另一个,但不能同时做。正如你在图 1 中看到的,这些图是垂直对齐的,但我需要缩小底部的两个;在图 2 中,底部的两个已缩小,但未垂直对齐。

如何缩小底部的两个图并确保所有图都垂直对齐?

下面是一个例子:

ggplot:

library(gridExtra)
library(ggplot2)
library(cowplot)
a <- ggplot(data = diamonds, mapping = aes(y = carat, x = price)) + geom_line()
b <- ggplot(data = diamonds, mapping = aes(x = clarity)) + geom_bar()
c <- ggplot(data = diamonds, mapping = aes(x = color)) + geom_bar()
Run Code Online (Sandbox Code Playgroud)

情节 1:

plot_grid(a, b, c, labels=c("", "", ""), ncol = 1, nrow = 3, align = "v")
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

情节 2:

grid.arrange(a,b,c, ncol = 1, nrow = 3, widths = …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

1
推荐指数
1
解决办法
3322
查看次数

在ggplot2中阴影很多不同的部分

这个问题基于我如何在R图的x轴上的日期之间提供阴影?以及如何对齐多个ggplot2图并在所有图上添加阴影

在详细介绍之前,我希望能够压缩为遮盖许多不同部分而必须编写的代码量。我希望能够将所有这些信息放入一个代码中。

这是我的MWE:

library(ggplot2)
library(scales)
set.seed(1)
data <- data.frame(Date = seq(as.Date('2000-01-01'), 
                   len= 23, by="1 day"), 
                   Value = sample(1:50, 23, replace=TRUE))
rect1 <- data.frame(xmin=as.Date('2000-01-03 12:00:00'), 
                    xmax=as.Date('2000-01-04 12:00:00'), 
                    ymin=-Inf, 
                    ymax=Inf)
rect2 <- data.frame(xmin=as.Date('2000-01-10'), 
                    xmax=as.Date('2000-01-11'), 
                    ymin=-Inf, 
                    ymax=Inf)
rect3 <- data.frame(xmin=as.Date('2000-01-17 00:00:00'), 
                    xmax=as.Date('2000-01-18 00:00:00'), 
                    ymin=-Inf, 
                    ymax=Inf)
ggplot() + 
  geom_line(data=data, aes(x = Date, y = Value)) + 
  geom_rect(data = rect1, aes(xmin = xmin, xmax = xmax, ymin = ymin, ymax = ymax), alpha = 0.4) + 
  geom_rect(data = rect2, aes(xmin = …
Run Code Online (Sandbox Code Playgroud)

plot r ggplot2

0
推荐指数
1
解决办法
1121
查看次数

标签 统计

ggplot2 ×3

r ×3

plot ×1