考虑一些facet_grid
情节
mt <- ggplot(mtcars, aes(mpg, wt, colour = factor(cyl))) + geom_point()
mt + facet_grid(vs ~ am, scales = "free")
Run Code Online (Sandbox Code Playgroud)
想象一下,我只想放大上图中的顶行,只显示3到4之间的y轴值.coord_cartesian()
如果它们没有刻面或我想放大所有绘图,我可以这样做,但是在这种情况下没有一个好的解决方案.我想我可以先将数据子集化,但这是有充分理由的禁忌(例如,会抛弃任何统计层等).
(请注意,问题与此有关:R:{ggplot2}:如何/我可以独立调整facet_grid图上的x轴限制吗?但是那里的答案不适用于此目的.)
我有一个包含以下变量和类似值的数据集:
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
Run Code Online (Sandbox Code Playgroud)
我已经成功创建了一个图表,显示了所有的response_time值和一个平滑的几何图形,以进一步描述一些变化.
我所面临的挑战是,我希望更好地了解平滑值,其中一个城市经常出现"异常值".我可以通过将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)
Run Code Online (Sandbox Code Playgroud)
整套数据 -
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)
Run Code Online (Sandbox Code Playgroud) library(tidyverse)
ggplot(mpg, aes(displ, cty)) +
geom_point() +
facet_grid(rows = vars(drv), scales = "free")
Run Code Online (Sandbox Code Playgroud)
上面的代码ggplot包括三个板4
,f
和r
。我希望每个面板的y轴限制如下:
Panel y-min y-max breaks
----- ----- ----- ------
4 5 25 5
f 0 40 10
r 10 20 2
Run Code Online (Sandbox Code Playgroud)
如何修改我的代码来完成此任务?不知道是否scale_y_continuous
更有意义,或coord_cartesian
,或两者的某种组合。