更新:我找到了答案...包括在下面。

我有一个包含以下变量和相似值的数据集:

COBSDATE,   CITY, RESPONSE_TIME
2011-11-23  A     1.1
2011-11-23  A     1.5
2011-11-23  A     1.2
2011-11-23  B     2.3
2011-11-23  B     2.1
2011-11-23  B     1.8
2011-11-23  C     1.4
2011-11-23  C     6.1
2011-11-23  A     3.1
2011-11-23  A     1.1

我已经成功创建了一个显示所有response_time值和平滑几何图形的图形,以进一步描述其中的一些变化。

我面临的挑战是,我想更好地了解平滑后的值(value),其中一个城市经常出现“异常值”。我可以通过在图上添加ylim(0,p99)来控制它,但是这会导致仅在数据子集上计算平滑度。

有没有一种方法可以将所有这些数据用于平滑图,并且仅将抖动图的子集使用?

我在这里的代码(除了+ ylim(0,20)以外,其他都是相同的:
截断-
ggplot(dataRaw, aes(x=COBSDATE, y=RESPONSE_TIME)) +
    geom_jitter(colour=alpha("#007DB1", 1/8)) +
    geom_smooth(colour="gray30", fill=alpha("gray40",0.5)) +
    ylim(0,20) +
    facet_wrap(~CITY)

整个数据集-
ggplot(dataRaw, aes(x=COBSDATE, y=RESPONSE_TIME)) +
    geom_jitter(colour=alpha("#007DB1", 1/8)) +
    geom_smooth(colour="gray30", fill=alpha("gray40",0.5)) +
    facet_wrap(~CITY)

最佳答案

如果您只想“放大”,则可以使用coord_cartesian:

ggplot(dataRaw, aes(x=COBSDATE, y=RESPONSE_TIME)) +
  geom_jitter(colour=alpha("#007DB1", 1/8)) +
  geom_smooth(colour="gray30", fill=alpha("gray40",0.5)) +
  coord_cartesian(ylim=c(0,20)) +
  facet_wrap(~CITY)

如果要为抖动几何使用数据的子集,请覆盖数据继承:
ggplot(dataRaw, aes(x=COBSDATE, y=RESPONSE_TIME)) +
  geom_jitter(data=subset(dataRaw, RESPONSE_TIME>=0 & RESPONSE_TIME<=20),
              colour=alpha("#007DB1", 1/8)) +
  geom_smooth(colour="gray30", fill=alpha("gray40",0.5)) +
  ylim(0,20) +
  facet_wrap(~CITY)

关于R/ggplot2 : smooth on entire dataset while enforcing a ylim cap,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9505270/

10-11 22:57