R ggplot2 x轴中断

时间:2016-06-11 09:25:20

标签: r graph ggplot2 axis

我正在尝试使用具有连续x轴的ggplot生成散点图,但两个点之间存在巨大的时间间隔。时间点是20,40,60,90,120,500,520。它们需要连续,因为我希望前5个值被缩放,但是我希望轴在120到500之间中断。我知道轴断裂的问题更普遍,(this SO question),但我的问题是指x轴而不是y轴。

示例数据;

EG.df <- data.frame(AGE = c(20, 20, 40, 40, 60, 60, 90, 90, 120, 120, 500, 500, 520, 520),
                     S1 = c(28, 30, 21, 15, 18, 19, 18, 21, 16, 17, 21, 21, 19, 13))

ggplot(EG.df, aes(x=AGE, y=S1)) +
  geom_point(size=10)

我认为有可能使用plotrix包(? - 我从未使用过它),但我更喜欢使用ggplot。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

仅使用scope "(:locale)" do get 'restaurant/list' => 'restaurant#list' end 就可以快速实现这一目标。我只使用ggplot2进行操作,所以不是真的需要。

我们首先将数据分解为您要绘制的部分。这可以使用数据自动完成,但在这里我手动设置剪切。关键是要创建两个组(分割前/后)。

现在因为你想要剪切的间隙中有一个数据点,我使用过滤器来显示该面。感觉不那么干净。

dplyr

现在,当我们绘制时,我们使用facet来创建差距。这意味着我们将有一个带切割标签的小面条。关键是使用EG.df <- EG.df %>% mutate(cut = cut(AGE, breaks = c(0,120,500,600))) %>% filter(cut != "(120,500]") 使x轴自动适应。

scales="free_x"

example

我保持原点的大小。您可以通过添加主题来删除条带。

ggplot(EG.df, aes(x=AGE, y=S1)) +
+     geom_point(size=10) + facet_grid(.~cut, scales="free_x")

您会注意到两个轴标签相互切割。我将把它作为练习让读者修理轴。