我叫Ihsan,很抱歉,如果我的英语听不懂, 我需要帮助以不同的方式为每组/每行设置多个图上的y轴极限/比例,因为某些图不太明显。
如您所见,“平滑”中的情节不太明显。我也想知道是否有一种方法可以自适应地设置y轴跟随数据范围。
这是我的数据:
coba <- structure(list(time = c(2018, 2018.08333333333, 2018.16666666667,
2018.25, 2018.33333333333, 2018.41666666667, 2018.5, 2018.58333333333,
2018.66666666667, 2018.75, 2018.83333333333, 2018.91666666667,
2019, 2019.08333333333, 2019.16666666667, 2019.25, 2019.33333333333,
2019.41666666667, 2019.5, 2019.58333333333, 2019.66666666667,
2019.75, 2019.83333333333, 2019.91666666667, 2020, 2020.08333333333,
2020.16666666667, 2018, 2018.08333333333, 2018.16666666667, 2018.25,
2018.33333333333, 2018.41666666667, 2018.5, 2018.58333333333,
2018.66666666667, 2018.75, 2018.83333333333, 2018.91666666667,
2019, 2019.08333333333, 2019.16666666667, 2019.25, 2019.33333333333,
2019.41666666667, 2019.5, 2019.58333333333, 2019.66666666667,
2019.75, 2019.83333333333, 2019.91666666667, 2020, 2020.08333333333,
2020.16666666667, 2018, 2018.08333333333, 2018.16666666667, 2018.25,
2018.33333333333, 2018.41666666667, 2018.5, 2018.58333333333,
2018.66666666667, 2018.75, 2018.83333333333, 2018.91666666667,
2019, 2019.08333333333, 2019.16666666667, 2019.25, 2019.33333333333,
2019.41666666667, 2019.5, 2019.58333333333, 2019.66666666667,
2019.75, 2019.83333333333, 2019.91666666667, 2020, 2020.08333333333,
2020.16666666667, 2018, 2018.08333333333, 2018.16666666667, 2018.25,
2018.33333333333, 2018.41666666667, 2018.5, 2018.58333333333,
2018.66666666667, 2018.75, 2018.83333333333, 2018.91666666667,
2019, 2019.08333333333, 2019.16666666667, 2019.25, 2019.33333333333,
2019.41666666667, 2019.5, 2019.58333333333, 2019.66666666667,
2019.75, 2019.83333333333, 2019.91666666667, 2020, 2020.08333333333,
2020.16666666667), group = c("smooth", "smooth", "smooth", "smooth",
"smooth", "smooth", "smooth", "smooth", "smooth", "smooth", "smooth",
"smooth", "smooth", "smooth", "smooth", "smooth", "smooth", "smooth",
"smooth", "smooth", "smooth", "smooth", "smooth", "smooth", "smooth",
"smooth", "smooth", "intermittent", "intermittent", "intermittent",
"intermittent", "intermittent", "intermittent", "intermittent",
"intermittent", "intermittent", "intermittent", "intermittent",
"intermittent", "intermittent", "intermittent", "intermittent",
"intermittent", "intermittent", "intermittent", "intermittent",
"intermittent", "intermittent", "intermittent", "intermittent",
"intermittent", "intermittent", "intermittent", "intermittent",
"erratic", "erratic", "erratic", "erratic", "erratic", "erratic",
"erratic", "erratic", "erratic", "erratic", "erratic", "erratic",
"erratic", "erratic", "erratic", "erratic", "erratic", "erratic",
"erratic", "erratic", "erratic", "erratic", "erratic", "erratic",
"erratic", "erratic", "erratic", "lumpy", "lumpy", "lumpy", "lumpy",
"lumpy", "lumpy", "lumpy", "lumpy", "lumpy", "lumpy", "lumpy",
"lumpy", "lumpy", "lumpy", "lumpy", "lumpy", "lumpy", "lumpy",
"lumpy", "lumpy", "lumpy", "lumpy", "lumpy", "lumpy", "lumpy",
"lumpy", "lumpy"), actual_data = c(0, 148, 94, 48, 151, 0, 0,
14, 70, 48, 59, 89, 103, 85, 72, 249, 70, 46, 63, 0, 43, 117,
183, 62, NA, NA, NA, 0, 0, 0, 0, 0, 2, 120, 351, 740, 0, 394,
669, 770, 349, 742, 915, 268, 296, 481, 0, 63, 0, 429, 228, NA,
NA, NA, 0, 0, 0, 393, 361, 262, 237, 149, 181, 776, 383, 150,
545, 284, 1076, 1167, 447, 19, 51, 13, 13, 169, 538, 570, NA,
NA, NA, 0, 0, 0, 0, 0, 0, 0, 0, 585, 61, 0, 0, 0, 0, 0, 3984,
347, 59, 0, 2, 17, 1, 0, 0, NA, NA, NA), method = c("svr", "svr",
"svr", "svr", "svr", "svr", "svr", "svr", "svr", "svr", "svr",
"svr", "svr", "svr", "svr", "svr", "svr", "svr", "svr", "svr",
"svr", "svr", "svr", "svr", "svr", "svr", "svr", "svr", "svr",
"svr", "svr", "svr", "svr", "svr", "svr", "svr", "svr", "svr",
"svr", "svr", "svr", "svr", "svr", "svr", "svr", "svr", "svr",
"svr", "svr", "svr", "svr", "svr", "svr", "svr", "svr", "svr",
"svr", "svr", "svr", "svr", "svr", "svr", "svr", "svr", "svr",
"svr", "svr", "svr", "svr", "svr", "svr", "svr", "svr", "svr",
"svr", "svr", "svr", "svr", "svr", "svr", "svr", "svr", "svr",
"svr", "svr", "svr", "svr", "svr", "svr", "svr", "svr", "svr",
"svr", "svr", "svr", "svr", "svr", "svr", "svr", "svr", "svr",
"svr", "svr", "svr", "svr", "svr", "svr", "svr"), point_forecast = c(NA,
NA, NA, 48.0996753799743, 79.5763438172094, 48.0168972734219,
48.0168972734219, 48.0168972734219, 69.9006492400514, 48.0996753799743,
59.0996753799743, 79.5763438172094, 79.5763438172094, 79.5763438172094,
71.9006492400514, 79.5763438172094, 69.8996753799743, 48.0168972734219,
63.7966205453156, 63.7966225343945, 63.7966205453156, 63.7966205453156,
63.7966205453156, 63.7966205453156, 63.7966205453156, 63.7966205453156,
63.7966205453156, NA, NA, NA, 119.710429582372, 119.710429582372,
119.710429582372, 120.000076084306, 137.39733157014, 179.964594161607,
270.374297388654, 271.837813656059, 385.11113900032, 233.638110791947,
349.000038463594, 386.717352711958, 437.389525425775, 343.279790315616,
394.438380626949, 429.986683473783, 282.09801758862, 241.1518231132,
266.213987530171, 125.039828056053, 199.439585161278, 185.69329793194,
286.371735962498, 239.492466873368, NA, NA, NA, 313.799269157967,
360.999742531489, 288.862188705292, 237.000573000286, 255.272473592413,
258.315891228577, 281.838344144049, 382.99969919893, 210.885123868099,
183.464705260668, 323.498548254514, 233.87978297062, 394.527456786046,
343.803751510101, 100.114046104047, 138.16020518945, 272.138049378457,
303.624284268614, 307.559874757169, 328.144675742086, 354.374346612312,
284.447520684868, 188.434018129088, 224.321511121496, NA, NA,
NA, 1, 1, 1, 1, 1, 1, 12.0605783660873, 1, 1, 1, 1, 1, 1, 12.0605783660873,
12.0605783660873, 5.74024787118026, 5.74024787118026, 5.73200607066632,
5.74024787118026, 5.74024787118026, 5.74024787118026, 3.59820241512781,
5.74008590554601, 5.74024787118026), forecast_upper_interval = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, 170.452414082618, 170.452414082618,
170.452414082618, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 706.442123116566,
807.120561147124, 760.241292057993, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, 876.133361363783, 780.119858808003, 816.007351800411, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, 1709.16785604818, 1711.3097395386,
1711.30990150424), forecast_lower_interval = c(NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, 0, 0, 0, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 0,
0, 0, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 0, 0, 0, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, 0, 0, 0)), row.names = 244:351, class = "data.frame")
这是我的代码:
library(ggplot2)
ggplot(data = coba, aes(x = time)) +
geom_line(aes(y = actual_data, color = "actual_data"), size = 1) +
geom_line(aes(y = point_forecast, color = "point_forecast"), size = 1) +
geom_line(aes(y = forecast_upper_interval, color = "forecast_interval"), size = 1) +
geom_line(aes(y = forecast_lower_interval, color = "forecast_interval"), size = 1) +
scale_colour_manual("",
breaks = c("actual_data","point_forecast","forecast_interval"),
values = c("black","red","blue")) +
geom_vline(xintercept = 2019.917) +
labs(title = "...",
subtitle = "...",
y = "Demand", x = "Period") +
facet_grid(group ~ method)
谢谢!非常感谢您的帮助或建议
答案 0 :(得分:0)
您可以在scales
中使用facet_grid
参数。 free_y
将重新调整每个构面的y轴,free_x
对x轴进行相同的缩放。
geom_line(aes(y = actual_data, color = "actual_data"), size = 1) +
geom_line(aes(y = point_forecast, color = "point_forecast"), size = 1) +
geom_line(aes(y = forecast_upper_interval, color = "forecast_interval"), size = 1) +
geom_line(aes(y = forecast_lower_interval, color = "forecast_interval"), size = 1) +
scale_colour_manual("",
breaks = c("actual_data","point_forecast","forecast_interval"),
values = c("black","red","blue")) +
geom_vline(xintercept = 2019.917) +
labs(title = "...",
subtitle = "...",
y = "Demand", x = "Period") +
facet_grid(group ~ method, scales = "free_y")