使用geom_smooth时是否可以绕过stat_smooth?
Is it possible to bypass stat_smooth when using geom_smooth?
我有一个数据集,我围绕它构建了以下图表:
该图是从本 post 底部包含的数据集提供的,并由以下 ggplot2 代码制成:
ggFacetProfile <- ggplot(sub, aes(group = iMoYr)) +
geom_line(aes(x= iHrMi, y = trimAv)) +
facet_grid(off ~ iMoYr, scales = "free") +
ggtitle("Typical Half Hourly Profiles") +
xlab("Time") + ylab("Energy (kWh)")
我在这里绘制 trimAv
(有效平均值)超过 iHrMi
(有效小时和分钟)的值。这是 iMoYr
off
的一个方面(实际上是过程的开启和关闭,以及一年中的不同月份)。
数据 table 已经在标题 minEcl
和 maxEcl
下计算出有效的平滑值范围。我希望能够使用 geom_smooth 在图形上将此数据表示为函数 geom_smooth 所形成的形状的边界,但是我一直无法找到一种方法来绕过调用 stat_smooth.
到目前为止我最接近的尝试是包括:
+ geom_smooth(aes(x= iHrMi, y = trimAv, ymin = minEcl, ymax = maxEcl))
然而,这被强制进行了黄土平滑,显然是由于数据的大小,看起来像这样:
是否可以提供 geom_smooth 特定的 pre-calculated 值,或者我是否试图以非常错误的方式使用 geom_smooth? ggplot2 中的其他 geom_ 参数如此适应似乎不协调table,这看起来如此僵化。
数据源的头部和尾部(一个数据table)包含在下面用于结构目的:
iDate off trimAv trimStD minEcl maxEcl iMoYr iHrMi
1: 2013-08 00:00 Production 136.52273 37.300389 76.4 218.4 2013-08 00:00
2: 2013-08 00:30 Production 136.14091 36.117819 80.3 217.7 2013-08 00:30
3: 2013-08 01:00 Production 133.92500 32.808662 76.9 213.3 2013-08 01:00
4: 2013-08 01:30 Production 139.20476 37.929480 77.1 221.5 2013-08 01:30
5: 2013-08 02:00 Production 137.82857 36.422042 74.9 221.0 2013-08 02:00
---
1148: 2014-07 22:30 Non-Production 50.51250 3.025812 47.1 56.3 2014-07 22:30
1149: 2014-07 23:00 Non-Production 49.88571 2.066743 47.0 52.6 2014-07 23:00
1150: 2014-07 23:30 Non-Production 49.94286 2.318661 46.5 52.5 2014-07 23:30
1151: 2014-07 00:00 Non-Production 50.85714 2.860569 47.9 54.9 2014-07 00:00
1152: 2014-07 00:30 Non-Production 50.72857 4.181194 47.6 59.1 2014-07 00:30
如果我能以更好/更合适的形式包含源数据table,请在评论中告诉我。
也许您正在寻找 geom_ribbon
。
ggFacetProfile <- ggplot(sub, aes(group = iMoYr)) +
geom_line(aes(x= iHrMi, y = trimAv)) +
facet_grid(off ~ iMoYr, scales = "free") +
ggtitle("Typical Half Hourly Profiles") +
xlab("Time") + ylab("Energy (kWh)") +
geom_ribbon(aes( ymin = minEcl, ymax = maxEcl))
我有一个数据集,我围绕它构建了以下图表:
该图是从本 post 底部包含的数据集提供的,并由以下 ggplot2 代码制成:
ggFacetProfile <- ggplot(sub, aes(group = iMoYr)) +
geom_line(aes(x= iHrMi, y = trimAv)) +
facet_grid(off ~ iMoYr, scales = "free") +
ggtitle("Typical Half Hourly Profiles") +
xlab("Time") + ylab("Energy (kWh)")
我在这里绘制 trimAv
(有效平均值)超过 iHrMi
(有效小时和分钟)的值。这是 iMoYr
off
的一个方面(实际上是过程的开启和关闭,以及一年中的不同月份)。
数据 table 已经在标题 minEcl
和 maxEcl
下计算出有效的平滑值范围。我希望能够使用 geom_smooth 在图形上将此数据表示为函数 geom_smooth 所形成的形状的边界,但是我一直无法找到一种方法来绕过调用 stat_smooth.
到目前为止我最接近的尝试是包括:
+ geom_smooth(aes(x= iHrMi, y = trimAv, ymin = minEcl, ymax = maxEcl))
然而,这被强制进行了黄土平滑,显然是由于数据的大小,看起来像这样:
是否可以提供 geom_smooth 特定的 pre-calculated 值,或者我是否试图以非常错误的方式使用 geom_smooth? ggplot2 中的其他 geom_ 参数如此适应似乎不协调table,这看起来如此僵化。
数据源的头部和尾部(一个数据table)包含在下面用于结构目的:
iDate off trimAv trimStD minEcl maxEcl iMoYr iHrMi
1: 2013-08 00:00 Production 136.52273 37.300389 76.4 218.4 2013-08 00:00
2: 2013-08 00:30 Production 136.14091 36.117819 80.3 217.7 2013-08 00:30
3: 2013-08 01:00 Production 133.92500 32.808662 76.9 213.3 2013-08 01:00
4: 2013-08 01:30 Production 139.20476 37.929480 77.1 221.5 2013-08 01:30
5: 2013-08 02:00 Production 137.82857 36.422042 74.9 221.0 2013-08 02:00
---
1148: 2014-07 22:30 Non-Production 50.51250 3.025812 47.1 56.3 2014-07 22:30
1149: 2014-07 23:00 Non-Production 49.88571 2.066743 47.0 52.6 2014-07 23:00
1150: 2014-07 23:30 Non-Production 49.94286 2.318661 46.5 52.5 2014-07 23:30
1151: 2014-07 00:00 Non-Production 50.85714 2.860569 47.9 54.9 2014-07 00:00
1152: 2014-07 00:30 Non-Production 50.72857 4.181194 47.6 59.1 2014-07 00:30
如果我能以更好/更合适的形式包含源数据table,请在评论中告诉我。
也许您正在寻找 geom_ribbon
。
ggFacetProfile <- ggplot(sub, aes(group = iMoYr)) +
geom_line(aes(x= iHrMi, y = trimAv)) +
facet_grid(off ~ iMoYr, scales = "free") +
ggtitle("Typical Half Hourly Profiles") +
xlab("Time") + ylab("Energy (kWh)") +
geom_ribbon(aes( ymin = minEcl, ymax = maxEcl))