Similar to this - Rearrange x-axis of hour when plotting
However when i am trying to realign the X-axis to represent data from 6:00 to 6:00 instead of 0:00 to 24:00, it messes up the X-axis.
Data:
intraday_txt_file <- structure(list(Time = structure(c(26100,
27000, 27900, 28800, 29700, 30600, 31500, 32400, 33300, 34200,
35100, 36000, 36900, 37800, 38700, 39600, 40500, 41400, 42300,
43200, 44100, 45000, 45900, 46800, 47700, 48600, 49500, 50400,
51300, 52200, 53100, 54000, 54900, 55800, 56700, 57600, 58500,
59400, 60300, 61200, 62100, 63000, 63900, 64800, 65700, 66600,
67500, 68400, 69300, 70200, 71100, 72000, 72900, 73800, 74700,
75600, 76500, 77400, 78300, 79200, 80100, 81000, 81900, 82800,
83700, 84600, 85500, 0, 900, 1800, 2700, 3600, 4500, 5400, 6300,
7200, 8100, 9000, 9900, 10800, 11700, 12600, 13500, 14400, 15300,
16200, 17100, 18000, 18900, 19800, 20700, 21600, 22500, 23400,
24300, 25200), class = c("hms", "difftime"), units = "secs"),
INTA_Lots_mean = c(NA, NA, NA, NA, NA, NA, NA, 73984.715,
36398.878, 30098.959, 21533.846, 24296.163, 20539.797, 21192.252,
17612.496, 19831.846, 20631.52, 23240.805, 23972.073, 24200.455,
22363.569, 22265.098, 20557.48, 21230.382, 18844.699, 22010.163,
20812.512, 21221.878, 22924.504, 21992.992, 22509.618, 23750.634,
22121.642, 23369.967, 22068.049, 26012.577, 28152.398, 32201.496,
58135.967, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
), INTA_Lots_std = c(NA, NA, NA, NA, NA, NA, NA, 41740.852,
26323.267, 31494.997, 17372.736, 22878.702, 16481.729, 15110.977,
12381.22, 15655.354, 16294.203, 17253.988, 18914.862, 18621.711,
16384.099, 15387.439, 15134.235, 14464.337, 13002.569, 15932.94,
14962.817, 16946.067, 24816.059, 21380.265, 24375.386, 30607.979,
26846.754, 17933.188, 14997.061, 21886.529, 23173.84, 27807.377,
28184.678, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
), IRDA_Lots_mean = c(NA, NA, NA, NA, NA, 1271.707, 2272.006,
33699.343, 19327.388, 15762.715, 11916.711, 21163.86, 15396.483,
14911.472, 13412.402, 14698.81, 16561.908, 17895.329, 18650.726,
18556.327, 15935.201, 20168.895, 15601.759, 17094.025, 15736.998,
21720.512, 21544.528, 17483.511, 18670.3, 17477.802, 17438.378,
16960.129, 20284.782, 17203.795, 17586.255, 20273.703, 21424.784,
21923.632, 23978.738, 13286.08, 13712.075, 10944.542, 11432.804,
13894.02, 11197.045, 14604.252, 11990.414, 14132.117, 11432.437,
13730.811, 11309.181, 11947.59, 11324.433, 11022.147, 9414.195,
9145.563, 8691.341, 8108.503, 6446.155, 6166.262, 5753.7,
6149.614, 6226.886, 7826.464, 11658.896, 5361.886, 3496.871,
1460.498, 1256.267, 1016.859, 1206.821, 893.054, 942.714,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA), IRDA_Lots_std = c(NA, NA,
NA, NA, NA, 1433.858, 2581.898, 22207.275, 15121.946, 16657.104,
10899.359, 13708.1, 10400.011, 12444.217, 12760.809, 10444.613,
16274.861, 11497.044, 12718.511, 13941.236, 11236.403, 17853.39,
10817.427, 11310.902, 12601.305, 23305.664, 19830.797, 12940.04,
18228.873, 15635.497, 17982.281, 18759.47, 32414.141, 18211.717,
22634.491, 25927.506, 27611.062, 22798.686, 24446.332, 18999.978,
25386.016, 10063.113, 11866.369, 13476.158, 9353.398, 10568.435,
7014.083, 8516.016, 5822.023, 9496.983, 7321.559, 6765.07,
9608.491, 8254.933, 5630.712, 5261.965, 5485.282, 8198.851,
4906.826, 3867.122, 4109.706, 3943.369, 3465.291, 4727.148,
5780.821, 6800.459, 4758.242, 1780.91, 2597.447, 1326.812,
2684.613, 965.589, 1242.637, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA), INTA_Ticks_mean = c(NA, NA, NA, NA, NA, NA, NA, 494.888,
310.75, 258.741, 215.871, 215.603, 187.983, 187.509, 166.647,
178.672, 175.388, 191.224, 192, 197.612, 187.009, 191.543,
179.578, 190.94, 168.431, 190.491, 184.509, 194.405, 189.155,
193.931, 193.155, 208.233, 206.698, 225.871, 211.284, 232.672,
242.871, 278.897, 425.888, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA), INTA_Ticks_std = c(NA, NA, NA, NA, NA, NA,
NA, 115.749, 108.685, 114.755, 92.887, 95.142, 83.583, 78.961,
74.319, 77.522, 79.758, 80.696, 86.048, 84.402, 86.307, 80.012,
65.364, 75.517, 60.811, 76.338, 77.981, 80.13, 93.237, 101.717,
99.321, 99.348, 94.091, 81.251, 80.525, 104.066, 91.521,
104.817, 82.811, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA), IRDA_Ticks_mean = c(NA, NA, NA, NA, NA, 13.621,
22.088, 478.244, 277.115, 222.574, 171.984, 320.504, 219.854,
219.033, 180.772, 233.382, 221.447, 273.512, 280, 268.756,
247.341, 273.561, 226.569, 255.528, 222.171, 286.171, 274.415,
262.423, 268.61, 263.504, 236.22, 228.203, 226.301, 226.74,
205.878, 226.138, 272.26, 305.59, 341.667, 142.87, 135.894,
167.618, 178.935, 220.789, 185.26, 245.797, 211.943, 244.065,
202.39, 224.984, 193.593, 220.252, 191.813, 194.146, 172.553,
174.593, 163.854, 137.789, 118.431, 118.309, 113.959, 118.13,
120.659, 153.943, 226.203, 92.439, 57.183, 17.811, 13.311,
11.52, 18.384, 11.04, 9.276, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA), IRDA_Ticks_std = c(NA, NA, NA, NA, NA, 13.009, 22.559,
339.917, 226.769, 246.241, 171.693, 193.124, 135.523, 158.417,
111.697, 166.274, 132.982, 175.104, 194.476, 167.98, 161.592,
176.042, 154.074, 175.578, 161.452, 212.025, 199.233, 177.949,
234.942, 244.076, 199.184, 181.156, 199.243, 165.708, 138.499,
163.454, 224.862, 302.301, 252.687, 94.196, 80.813, 120.781,
121.624, 195.986, 139.993, 125.607, 106.021, 132.839, 93.058,
98.6, 106.225, 121.992, 118.005, 123.986, 90.991, 89.769,
84.775, 69.574, 63.468, 64.524, 68.963, 65.239, 58.548, 77.487,
104.574, 95.739, 86.272, 20.987, 22.121, 14.254, 78.781,
16.157, 10.833, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), INTA_VAR_MEAN = c(NA,
NA, NA, NA, NA, NA, NA, 2.048, 0.113, 0.128, 0.041, 0.054,
0.04, 0.038, 0.032, 0.04, 0.048, 0.052, 0.045, 0.069, 0.043,
0.055, 0.049, 0.063, 0.048, 0.059, 0.052, 0.09, 0.046, 0.075,
0.096, 0.096, 0.056, 0.046, 0.041, 0.102, 0.107, 0.075, 0.071,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), INTA_VAR_Stdev = c(NA,
NA, NA, NA, NA, NA, NA, 5.124, 0.275, 0.761, 0.132, 0.219,
0.131, 0.116, 0.067, 0.11, 0.109, 0.138, 0.107, 0.344, 0.105,
0.195, 0.149, 0.159, 0.13, 0.201, 0.138, 0.535, 0.116, 0.206,
0.517, 0.599, 0.146, 0.121, 0.117, 0.464, 0.371, 0.259, 0.155,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), IRDA_VAR_MEAN = c(NA,
NA, NA, NA, NA, 0.501, 0.124, 0.465, 0.133, 0.134, 0.05,
0.06, 0.04, 0.04, 0.032, 0.042, 0.054, 0.055, 0.058, 0.066,
0.046, 0.054, 0.046, 0.064, 0.054, 0.069, 0.059, 0.081, 0.049,
0.079, 0.079, 0.081, 0.066, 0.051, 0.039, 0.099, 0.098, 0.069,
0.067, 0.071, 0.054, 0.106, 0.051, 0.187, 0.062, 0.05, 0.069,
0.07, 0.04, 0.065, 0.048, 0.06, 0.054, 0.044, 0.053, 0.053,
0.05, 0.028, 0.022, 0.025, 0.033, 0.029, 0.028, 0.027, 0.051,
0.08, 0.037, 0.022, 0.021, 0.022, 0.033, 0.028, 0.039, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA), IRDA_VAR_Stdev = c(NA, NA, NA,
NA, NA, 1.892, 0.353, 1.154, 0.307, 0.761, 0.148, 0.197,
0.101, 0.129, 0.06, 0.112, 0.113, 0.137, 0.129, 0.242, 0.096,
0.147, 0.124, 0.148, 0.147, 0.213, 0.142, 0.355, 0.103, 0.203,
0.311, 0.496, 0.156, 0.111, 0.104, 0.455, 0.324, 0.248, 0.135,
0.153, 0.117, 0.791, 0.105, 0.76, 0.139, 0.126, 0.137, 0.217,
0.073, 0.145, 0.119, 0.124, 0.141, 0.108, 0.144, 0.126, 0.107,
0.058, 0.048, 0.044, 0.076, 0.052, 0.064, 0.058, 0.146, 0.418,
0.133, 0.049, 0.091, 0.073, 0.163, 0.076, 0.101, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA)), .Names = c("Time", "INTA_Lots_mean",
"INTA_Lots_std", "IRDA_Lots_mean", "IRDA_Lots_std", "INTA_Ticks_mean",
"INTA_Ticks_std", "IRDA_Ticks_mean", "IRDA_Ticks_std", "INTA_VAR_MEAN",
"INTA_VAR_Stdev", "IRDA_VAR_MEAN", "IRDA_VAR_Stdev"), class = c("tbl_df",
"tbl", "data.frame"), row.names = c(NA, -96L), spec = structure(list(
cols = structure(list(Time = structure(list(format = "%H:%M"), .Names = "format", class = c("collector_time",
"collector")), INTA_Lots_mean = structure(list(), class = c("collector_double",
"collector")), INTA_Lots_std = structure(list(), class = c("collector_double",
"collector")), IRDA_Lots_mean = structure(list(), class = c("collector_double",
"collector")), IRDA_Lots_std = structure(list(), class = c("collector_double",
"collector")), INTA_Ticks_mean = structure(list(), class = c("collector_double",
"collector")), INTA_Ticks_std = structure(list(), class = c("collector_double",
"collector")), IRDA_Ticks_mean = structure(list(), class = c("collector_double",
"collector")), IRDA_Ticks_std = structure(list(), class = c("collector_double",
"collector")), `INTA_VAR_MEAN^6` = structure(list(), class = c("collector_double",
"collector")), `INTA_VAR_Stdev^6` = structure(list(), class = c("collector_double",
"collector")), `IRDA_VAR_MEAN^6` = structure(list(), class = c("collector_double",
"collector")), `IRDA_VAR_Stdev^6` = structure(list(), class = c("collector_double",
"collector"))), .Names = c("Time", "INTA_Lots_mean", "INTA_Lots_std",
"IRDA_Lots_mean", "IRDA_Lots_std", "INTA_Ticks_mean", "INTA_Ticks_std",
"IRDA_Ticks_mean", "IRDA_Ticks_std", "INTA_VAR_MEAN^6", "INTA_VAR_Stdev^6",
"IRDA_VAR_MEAN^6", "IRDA_VAR_Stdev^6")), default = structure(list(), class = c("collector_guess",
"collector"))), .Names = c("cols", "default"), class = "col_spec"))
Code:
ggplot(data=intraday_txt_file, aes(x=Time, y=INTA_Lots_mean)) +
geom_point() + geom_line() +
geom_errorbar(aes(ymin=INTA_Lots_mean-INTA_Lots_std,
ymax=INTA_Lots_mean+INTA_Lots_std), width=.1)
Graph:
In your dataset, the classes for the Time variable are hms
& difftime
. The solution you linked requires the conversion of time to Factor
class, so that the user can specify the order in levels.
Try this:
# specify order for Time. In this case with 15 min intervals, the 25th position
# for alphabetically sorted time is 06:00:00
Time.order <- sort(as.character(intraday_txt_file$Time))[c(25:96, 1:24)]
# specify label breaks for x-axis by changing some to blanks. "by = 12" is for 3-hour breaks,
# since 12 x 15min interval = 3 hours. for 2-hour breaks, use "by = 8", etc.
Time.breaks <- Time.order
Time.breaks[setdiff(seq(1, 96), seq(1, 96, by = 12))] <- ""
ggplot(data=intraday_txt_file %>% mutate(Time = factor(Time, levels = Time.order)),
aes(x=Time, y=INTA_Lots_mean)) +
geom_point() + geom_line() +
geom_errorbar(aes(ymin=INTA_Lots_mean-INTA_Lots_std,
ymax=INTA_Lots_mean+INTA_Lots_std), width=.1) +
scale_x_discrete(labels = Time.breaks)