当它们具有相同的x轴时,是否有任何方法可以使用ggplot将线图的点与条形图的条形对齐?以下是我正在尝试使用的示例数据 .
library(ggplot2)
library(gridExtra)
data=data.frame(x=rep(1:27, each=5), y = rep(1:5, times = 27))
yes <- ggplot(data, aes(x = x, y = y))
yes <- yes + geom_point() + geom_line()
other_data = data.frame(x = 1:27, y = 50:76 )
no <- ggplot(other_data, aes(x=x, y=y))
no <- no + geom_bar(stat = "identity")
grid.arrange(no, yes)
这是输出:
线图的第一个点位于第一个柱的左侧,线图的最后一个点位于最后一个柱的右侧 .
感谢您的时间 .
2 回答
扩展@ Stibu的帖子:要对齐图表,请使用
gtable
(或查看your earlier question的答案)Edit 要改变地块的高度:
我可以想到(至少)两种方法来对齐两个图中的x轴:
limits
设置x轴的范围 . 但请注意,藻酸盐仍然不是很完美 . y轴标签在上图中占用更多空间,因为数字有两位数 . 情节如下:然后可以按如下方式创建绘图:
诀窍是让facet由变量
type
构造,该变量之前用于标记两个数据集 . 但是每个geom
只获取应该使用该特定geom
绘制的数据子集 . 在facet_grid
中,我也使用了scales = "free_y"
,因为两个y轴应该是独立的 . 该图如下:您可以在定义数据框
all
时通过提供其他名称来更改构面的标签 . 如果要将它们全部删除,请将以下内容添加到您的绘图中: