我正在尝试使用ggplot生成散点图,该散点图具有连续的x轴,但是两个点之间的时间间隔很大。时间点是20、40、60、90、120、500、520。它们需要是连续的,因为我希望对前5个值进行缩放,但是随后我希望在120和500之间的轴上进行中断。我知道轴断裂问题的更广泛的解决(这个SO问题),但是我的问题是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)
我认为使用plottrix包(?-我从未使用过)可能是可行的,但我更喜欢使用ggplot。有什么建议?
仅使用,这确实是一个不错的选择ggplot2
。我dplyr
仅用于操纵,因此并不是真正需要的。
我们首先将数据分解为您要绘制的部分。可以使用数据自动完成此操作,但是在此我手动设置切割。关键是要创建两个组(拆分之前/之后)。
现在,由于您要剪切间隙中有一个数据点,因此我使用了滤镜以不显示该构面。感觉不太干净。
EG.df <- EG.df %>%
mutate(cut = cut(AGE, breaks = c(0,120,500,600))) %>%
filter(cut != "(120,500]")
现在,当我们绘制图形时,我们使用构面来创建间隙。这意味着我们将获得带有切割标签的刻面条。关键是scales="free_x"
用来使x轴自动适应。
ggplot(EG.df, aes(x=AGE, y=S1)) +
+ geom_point(size=10) + facet_grid(.~cut, scales="free_x")
我保持原样的大小。您可以通过添加主题来删除这些条。
theme(
strip.text.x = element_blank(),
strip.background = element_blank())
您会注意到,两个轴标签彼此切开。我将其留给读者作为固定轴的练习。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句