我需要在同一页上绘制几个时间序列图,每个时间图都在其自己的面板中,网格为3x2或类似形状。在后一种情况下,我将在3行2列的页面上显示6个图表。我需要使用R,任何流行的情节库都可以。
此外,每个图表上都有多个时间序列。除一个时间序列外,所有时间序列都将在左侧缩放到y轴,而一个时间序列将以不同的比例缩放,其y标签在右侧。这类似于MATLAB中的plotyy命令。
我将需要自定义很多内容,例如颜色和线条类型。 R对于这种图表有什么解决方案?
答案 0 :(得分:0)
使用ggplot2,我们可以使用facet_wrap
来定义构面(面板),使用sec_axis
来定义辅助轴。
library(ggplot2)
ggplot(dd, aes(x, y, col = id)) +
geom_line() +
facet_wrap(~ panel) +
scale_y_continuous(sec.axis = sec_axis(~ . / 2))
我们使用下面定义的dd
作为上面的输入。 id
定义系列,面板定义每个id
应该放置的面板。
set.seed(123)
dd <- data.frame(x = 1:11, y = rnorm(44),
id = gl(4, 11, labels = paste0("ser", 1:4)),
panel = gl(2, 22, labels = paste0("panel", 1:2)))