【发布时间】:2014-02-01 16:27:12
【问题描述】:
我想将两个图表合二为一。它们都是时间序列,但尺度不同(比如说身高和体重)。我想展示的方式是让两个图形相互重叠,共享 x-label,但有不同的 y-label。
我有两个不同的问题:
- 如果我做 2x1 分面,分面标签的默认位置是在垂直文本的右侧,我宁愿将它们作为(子)标题放在图表顶部
-
ylab()为所有方面定义了一个 ylabel,但我有两个不同的变量/尺度。是否可以将其“拆分”并具有两个不同的 ylabel(例如重量为“克”,高度为“英寸”)?
谢谢!
编辑:
好的,这是代码。 mn 是按时间绘制的变量,按风险分组。但mn 的含义取决于var。对于var 的某些值是weight,对于其他值是height。
qplot(time, mn, data=d.plot.long,
color=risk, group=risk,
geom=c("line","point"),
position=position_dodge(.2))+
geom_point(size=5, position=position_dodge(.2))+
geom_errorbar(aes(x=time, y=mn, ymin=low, ymax=hi),width=.3 ,position=position_dodge(.2))+
facet_grid(var~.,scales='free_y')+
xlab('Time')+ylab('')+
scale_color_discrete(name="The grouping variable", breaks=c("Hi","Low"), labels=(c("Group A","Group B")))
【问题讨论】:
-
欢迎来到 StackOverflow。请提出您的问题reproducible by providing sample code and data。这样可以更轻松地发布有用的答案。
-
看起来你实际上想要两个不同的情节。也许你应该把它分成两个情节并使用
grid.arrange安排它们? -
正如@Andrie 所说,(示例)数据集也可以更轻松地发布有用的答案。
-
除此之外,我使用了
gridExtra包的this answer to another question 可能会有所帮助。