0

I have used ggplot geom_area to plot time series data and there are lines connecting those times/dates which there are no values for, but yet connected. How do I remove the gap or remove the connected line? As you can see from the image below, before Dec. 7 2015 (Monday) is Saturday and Sunday Dec. 5 and Dec 6. I have removed all data which represent Weekends.

Here's a sample of the data with dput(CPU):

dput(CPU) structure(list(ts = structure(c(1449258000, 1449258060, 1449258120, 1449258180, 1449258240, 1449258300, 1449258360, 1449258420, 1449258480, 1449258540, 1449258600, 1449258660, 1449258720, 1449258780, 1449258840, 1449258900, 1449258960, 1449259020, 1449259080, 1449259140, 1449259200, 1449259260, 1449259320, 1449259380, 1449259440, 1449259500, 1449259560, 1449259620, 1449259680, 1449259740, 1449259800, 1449259860, 1449259920, 1449259980, 1449260040, 1449260100, 1449260160, 1449260220, 1449260280, 1449260340, 1449260400, 1449260460, 1449260520, 1449260580, 1449260640, 1449260700, 1449260760, 1449260820, 1449260880, 1449260940, 1449261000, 1449261060, 1449261120, 1449261180, 1449261240, 1449261300, 1449261360, 1449261420, 1449261480, 1449261540, 1449261600, 1449261660, 1449261720, 1449261780, 1449261840, 1449261900, 1449261960, 1449262020, 1449262080, 1449262140, 1449262200, 1449262260, 1449262320, 1449262380, 1449262440, 1449262500, 1449262560, 1449262620, 1449262680, 1449262740, 1449262800, 1449565260, 1449565320, 1449565380, 1449565440, 1449565500, 1449565560, 1449565620, 1449565680, 1449565740, 1449565800, 1449565860, 1449565920, 1449565980, 1449566040, 1449566100, 1449566160, 1449566220, 1449566280, 1449566340, 1449566400, 1449566460, 1449566520, 1449566580, 1449566640, 1449566700, 1449566760, 1449566820, 1449566880, 1449566940, 1449567000, 1449567060, 1449567120, 1449567180, 1449567240, 1449567300, 1449567360, 1449567420, 1449567480, 1449567540, 1449567600, 1449567660, 1449567720, 1449567780, 1449567840, 1449567900, 1449567960, 1449568020, 1449568080, 1449568140, 1449568200, 1449568260, 1449568320, 1449568380, 1449568440, 1449568500, 1449568560, 1449568620, 1449568680, 1449568740, 1449568800, 1449568860, 1449568920, 1449568980, 1449569040, 1449569100, 1449569160, 1449569220, 1449569280, 1449569340, 1449569400, 1449569460, 1449569520, 1449569580, 1449569640, 1449569700, 1449569760, 1449569820, 1449569880, 1449569940, 1449570000, 1449570060, 1449570120, 1449570180, 1449570240, 1449570300, 1449570360, 1449570420, 1449570480, 1449570540, 1449570600, 1449570660, 1449570720, 1449570780, 1449570840, 1449570900, 1449570960, 1449571020, 1449571080, 1449571140, 1449571200, 1449571260, 1449571320, 1449571380, 1449571440, 1449571500, 1449571560, 1449571620, 1449571680, 1449571740, 1449571800, 1449571860, 1449571920, 1449571980, 1449572040, 1449572100, 1449572160, 1449572220, 1449572280, 1449572340, 1449572400, 1449572460, 1449572520, 1449572580, 1449572640, 1449572700, 1449572760, 1449572820, 1449572880, 1449572940, 1449573000, 1449573060, 1449573120, 1449573180, 1449573240, 1449573300, 1449573360, 1449573420, 1449573480, 1449573540, 1449573600, 1449573660, 1449573720, 1449573780, 1449573840, 1449573900, 1449573960, 1449574020, 1449574080, 1449574140, 1449574200, 1449574260, 1449574320, 1449574380, 1449574440, 1449574500, 1449574560, 1449574620, 1449574680, 1449574740, 1449574800, 1449574860, 1449574920, 1449574980, 1449575040, 1449575100, 1449575160, 1449575220, 1449575280, 1449575340, 1449575400, 1449575460, 1449575520, 1449575580, 1449575640, 1449575700, 1449575760, 1449575820, 1449575880, 1449575940, 1449576000, 1449576060, 1449576120, 1449576180, 1449576240, 1449576300, 1449576360, 1449576420, 1449576480, 1449576540, 1449576600, 1449576660, 1449576720, 1449576780, 1449576840, 1449576900, 1449576960, 1449577020, 1449577080, 1449577140, 1449577200, 1449577260, 1449577320, 1449577380, 1449577440, 1449577500, 1449577560, 1449577620, 1449577680, 1449577740, 1449577800, 1449577860, 1449577920, 1449577980, 1449578040, 1449578100, 1449578160, 1449578220, 1449578280, 1449578340, 1449578400, 1449578460, 1449578520, 1449578580, 1449578640, 1449578700, 1449578760, 1449578820, 1449578880, 1449578940, 1449579000, 1449579060, 1449579120, 1449579180, 1449579240, 1449579300, 1449579360, 1449579420, 1449579480, 1449579540, 1449579600, 1449579660, 1449579720, 1449579780, 1449579840, 1449579900, 1449579960, 1449580020, 1449580080, 1449580140, 1449580200, 1449580260, 1449580320, 1449580380, 1449580440, 1449580500, 1449580560, 1449580620, 1449580680, 1449580740, 1449580800, 1449580860, 1449580920, 1449580980, 1449581040, 1449581100, 1449581160, 1449581220, 1449581280, 1449581340, 1449581400, 1449581460, 1449581520, 1449581580, 1449581640, 1449581700, 1449581760, 1449581820, 1449581880, 1449581940, 1449582000, 1449582060, 1449582120, 1449582180, 1449582240, 1449582300, 1449582360, 1449582420, 1449582480, 1449582540, 1449582600, 1449582660, 1449582720, 1449582780, 1449582840, 1449582900, 1449582960, 1449583020, 1449583080, 1449583140, 1449583200, 1449583260, 1449583320, 1449583380, 1449583440, 1449583500, 1449583560, 1449583620, 1449583680, 1449583740, 1449583800, 1449583860, 1449583920, 1449583980, 1449584040, 1449584100, 1449584160, 1449584220, 1449584280, 1449584340, 1449584400, 1449584460, 1449584520, 1449584580, 1449584640, 1449584700, 1449584760, 1449584820, 1449584880, 1449584940, 1449585000, 1449585060, 1449585120, 1449585180, 1449585240, 1449585300, 1449585360, 1449585420, 1449585480, 1449585540, 1449585600, 1449585660, 1449585720, 1449585780, 1449585840, 1449585900, 1449585960, 1449586020, 1449586080, 1449586140, 1449586200, 1449586260, 1449586320, 1449586380, 1449586440, 1449586500, 1449586560, 1449586620, 1449586680, 1449586740, 1449586800, 1449586860, 1449586920, 1449586980, 1449587040, 1449587100, 1449587160, 1449587220, 1449587280, 1449587340, 1449587400, 1449587460, 1449587520, 1449587580, 1449587640, 1449587700, 1449587760, 1449587820, 1449587880, 1449587940, 1449588000, 1449588060, 1449588120, 1449588180, 1449588240, 1449588300, 1449588360, 1449588420, 1449588480, 1449588540, 1449588600, 1449588660, 1449588720, 1449588780, 1449588840, 1449588900, 1449588960, 1449589020, 1449589080, 1449589140, 1449589200, 1449589260, 1449589320, 1449589380, 1449589440, 1449589500, 1449589560, 1449589620, 1449589680, 1449589740, 1449589800, 1449589860, 1449589920, 1449589980, 1449590040, 1449590100, 1449590160, 1449590220, 1449590280, 1449590340, 1449590400, 1449590460, 1449590520, 1449590580, 1449590640, 1449590700, 1449590760, 1449590820, 1449590880, 1449590940, 1449591000, 1449591060, 1449591120, 1449591180, 1449591240, 1449591300, 1449591360, 1449591420, 1449591480, 1449591540, 1449591600, 1449591660, 1449591720, 1449591780, 1449591840, 1449591900, 1449591960, 1449592020, 1449592080, 1449592140, 1449592200, 1449592260, 1449592320, 1449592380, 1449592440, 1449592500, 1449592560, 1449592620, 1449592680, 1449592740, 1449592800, 1449592860, 1449592920, 1449592980, 1449593040, 1449593100, 1449593160, 1449593220, 1449593280, 1449593340, 1449593400, 1449593460, 1449593520, 1449593580, 1449593640, 1449593700, 1449593760, 1449593820, 1449593880, 1449593940, 1449594000, 1449594060, 1449594120, 1449594180, 1449594240, 1449594300, 1449594360, 1449594420, 1449594480, 1449594540, 1449594600, 1449594660, 1449594720, 1449594780, 1449594840, 1449594900, 1449594960, 1449595020, 1449595080, 1449595140, 1449595200, 1449595260, 1449595320, 1449595380, 1449595440, 1449595500, 1449595560, 1449595620, 1449595680, 1449595740, 1449595800, 1449595860, 1449595920, 1449595980, 1449596040, 1449596100, 1449596160, 1449596220, 1449596280, 1449596340, 1449596400), class = c("POSIXct", "POSIXt"), tzone = ""), System = c("server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001", "server001"), metrics = c(0.288372, 0.247145, 0.232903, 0.253183, 0.26751, 0.262391, 0.235883, 0.237441, 0.301197, 0.234004, 0.286497, 0.263496, 0.234138, 0.238665, 0.232898, 0.243791, 0.289327, 0.238245, 0.224087, 0.235851, 0.223251, 0.25403, 0.215046, 0.267238, 0.281618, 0.249004, 0.268646, 0.249654, 0.241312, 0.219919, 0.24765, 0.317371, 0.258563, 0.215631, 0.237656, 0.232629, 0.272933, 0.209492, 0.241305, 0.222076, 0.24159, 0.263765, 0.242895, 0.216824, 0.265954, 0.20983, 0.253451, 0.229154, 0.254597, 0.234256, 0.237786, 0.267705, 0.245445, 0.234775, 0.209113, 0.248253, 0.265652, 0.235393, 0.274927, 0.278418, 0.245866, 0.236079, 0.240007, 0.255659, 0.233085, 0.217165, 0.253316, 0.247006, 0.242218, 0.227079, 0.20963, 0.236284, 0.253633, 0.213918, 0.223175, 0.233064, 0.30313, 0.307079, 0.240132, 0.29538, 0.303718, 0.396464, 0.26728, 0.188936, 0.278461, 0.224717, 0.227365, 0.258377, 0.219698, 0.231616, 0.199281, 0.248201, 0.219995, 0.221144, 0.29927, 0.218106, 0.231227, 0.246976, 0.243268, 0.255504, 0.283159, 0.250252, 0.239786, 0.201362, 0.243534, 0.201313, 0.206258, 0.221449, 0.225536, 0.242367, 0.229921, 0.238839, 0.207359, 0.191109, 0.274518, 0.219572, 0.212133, 0.191575, 0.203684, 0.228724, 0.199711, 0.187297, 0.1921, 0.208677, 0.271811, 0.183841, 0.195305, 0.213086, 0.216037, 0.229132, 0.228209, 0.205442, 0.227308, 0.209589, 0.215956, 0.206802, 0.225366, 0.22285, 0.328926, 0.226923, 0.345771, 0.213963, 0.232153, 0.209689, 0.266522, 0.305796, 0.207364, 0.2084, 0.21136, 0.242967, 0.209414, 0.183304, 0.181534, 0.194897, 0.230712, 0.203439, 0.187966, 0.208459, 0.196052, 0.212309, 0.213567, 0.193948, 0.214834, 0.194363, 0.202594, 0.250092, 0.197673, 0.209527, 0.212454, 0.205443, 0.198225, 0.212214, 0.183099, 0.188976, 0.238632, 0.239033, 0.203298, 0.21226, 0.200475, 0.222401, 0.195367, 0.266922, 0.243594, 0.225188, 0.215999, 0.235564, 0.216591, 0.204462, 0.204339, 0.207728, 0.191394, 0.203028, 0.199191, 0.181568, 0.20763, 0.204791, 0.23651, 0.213375, 0.232428, 0.220182, 0.184496, 0.252282, 0.204151, 0.386523, 0.213589, 0.212463, 0.225372, 0.20141, 0.215371, 0.18723, 0.199557, 0.206897, 0.220594, 0.183291, 0.202657, 0.204814, 0.27829, 0.24089, 0.205901, 0.198138, 0.194788, 0.221652, 0.197645, 0.19384, 0.211556, 0.26412, 0.217189, 0.201665, 0.197405, 0.188153, 0.184382, 0.200804, 0.23216, 0.196159, 0.196027, 0.22366, 0.223336, 0.231765, 0.188834, 0.205621, 0.192599, 0.189947, 0.217345, 0.184764, 0.198629, 0.204494, 0.198254, 0.220427, 0.185842, 0.199543, 0.178451, 0.182647, 0.227167, 0.199012, 0.209262, 0.198369, 0.18784, 0.258865, 0.207743, 0.205134, 0.218759, 0.250555, 0.251552, 0.199336, 0.199135, 0.218159, 0.218495, 0.250168, 0.218434, 0.192905, 0.17056, 0.187333, 0.201514, 0.19548, 0.189362, 0.215645, 0.197389, 0.217717, 0.217706, 0.197179, 0.207618, 0.187911, 0.235678, 0.189708, 0.217505, 0.227814, 0.184172, 0.200899, 0.217399, 0.225321, 0.178466, 0.200805, 0.177159, 0.244491, 0.210132, 0.207411, 0.200252, 0.198625, 0.239858, 0.242315, 0.234621, 0.229589, 0.213493, 0.264657, 0.226673, 0.221782, 0.229586, 0.211217, 0.220887, 0.226261, 0.216337, 0.204985, 0.240062, 0.211086, 0.2218, 0.201621, 0.190184, 0.197998, 0.2157, 0.212086, 0.20484, 0.525744, 0.263421, 0.264458, 0.267047, 0.226298, 0.205871, 0.225134, 0.234951, 0.267698, 0.205203, 0.252123, 0.212187, 0.226147, 0.221359, 0.245697, 0.214496, 0.211698, 0.19734, 0.20788, 0.191572, 0.206348, 0.206784, 0.191455, 0.209556, 0.203316, 0.179588, 0.204673, 0.208824, 0.241371, 0.204571, 0.222404, 0.18848, 0.189413, 0.21873, 0.212693, 0.196885, 0.244604, 0.198753, 0.214202, 0.223725, 0.220054, 0.206053, 0.198085, 0.232775, 0.225687, 0.190956, 0.19707, 0.196161, 0.224437, 0.189629, 0.203279, 0.205812, 0.201634, 0.242646, 0.266791, 0.227972, 0.212855, 0.22468, 0.247588, 0.216971, 0.251978, 0.219249, 0.195081, 0.242786, 0.276973, 0.219209, 0.205546, 0.219753, 0.19691, 0.258661, 0.207074, 0.249211, 0.222845, 0.228219, 0.230792, 0.187918, 0.19713, 0.200113, 0.202019, 0.204292, 0.201513, 0.201274, 0.187486, 0.215092, 0.301091, 0.201359, 0.212645, 0.432388, 0.204179, 0.258344, 0.207273, 0.187275, 0.227855, 0.198193, 0.229103, 0.1842, 0.217599, 0.194872, 0.23636, 0.21453, 0.241506, 0.202661, 0.211105, 0.213548, 0.24215, 0.284044, 0.253729, 0.227689, 0.221818, 0.218346, 0.260757, 0.22902, 0.196344, 0.213335, 0.211995, 0.233224, 0.206245, 0.263927, 0.235257, 0.193614, 0.271716, 0.277761, 0.343638, 0.238439, 0.21401, 0.245253, 0.211423, 0.236906, 0.21886, 0.206975, 0.225971, 0.205739, 0.199716, 0.219039, 0.208224, 0.254229, 0.205346, 0.220865, 0.208859, 0.199045, 0.238312, 0.21185, 0.207355, 0.202851, 0.186411, 0.239989, 0.211802, 0.303749, 0.220556, 0.18317, 0.228203, 0.228268, 0.197945, 0.214294, 0.191617, 0.231116, 0.23523, 0.20035, 0.213914, 0.199164, 0.192729, 0.203119, 0.371384, 0.208732, 0.220399, 0.253037, 0.277358, 0.247789, 0.26188, 0.207109, 0.202633, 0.258373, 0.21161, 0.197238, 0.215531, 0.251193, 0.246731, 0.243003, 0.224583, 0.208755, 0.228923, 0.274633, 0.238611, 0.245261, 0.246862, 0.237749, 0.233432, 0.221853, 0.216367, 0.246915, 0.213599, 0.220213, 0.21386, 0.195043, 0.198959, 0.220099, 0.290022, 0.226375, 0.207325, 0.210104, 0.225842, 0.242702, 0.223597, 0.206619, 0.187687, 0.240562, 0.2202, 0.225614, 0.212092, 0.195034, 0.228318, 0.193519, 0.226766, 0.206733, 0.227293, 0.247308, 0.219568, 0.258563, 0.255264, 0.240945, 0.234899, 0.216914, 0.242454, 0.250532, 0.225082, 0.225661, 0.246024, 0.273235, 0.252093, 0.195843, 0.224349, 0.27438, 0.247447, 0.204042, 0.180983, 0.22379, 0.218356, 0.230172, 0.200553, 0.206421, 0.27038, 0.232008, 0.211188, 0.230041, 0.236733, 0.22897, 0.21133, 0.247138, 0.222034, 0.268839, 0.232261, 0.203905, 0.225932, 0.234577, 0.202129, 0.247266, 0.229181, 0.21699, 0.252552, 0.182855, 0.180748, 0.2033, 0.172263, 0.196522, 0.185637, 0.201388, 0.19546, 0.197116, 0.216508, 0.197836, 0.17659, 0.182022, 0.177828, 0.208428, 0.180876, 0.208296, 0.19668, 0.194047, 0.208276, 0.175549)), .Names = c("ts", "System", "metrics"), row.names = 400:1000, class = "data.frame")

ggplot(CPU, aes(ts, metrics)) + 
  geom_area(colour="#000099") + 
  xlab("Time") + ylab("CPU") + ggtitle("CPU")

enter image description here

user2103970
  • 703
  • 3
  • 9
  • 15

1 Answers1

1

You can remove the connected line by creating a grouping variable that increments to a new group whenever the data switches from present to absent or vice versa. Then add that grouping variable as a group aesthetic to prevent a connecting line across the gaps in the data.

# Fake data
set.seed(1003)
CPU = data.frame(ts = seq(as.POSIXct("2015-11-30 00:00:00"), 
                          as.POSIXct("2015-12-07 00:00:00"), length.out=1000),
                 metrics=rep(c(runif(200,0,10), rep(NA,50)), 4))

Create the grouping variable:

CPU$group = c(0, cumsum(diff(is.na(CPU$metrics)) != 0))

Now plot using the grouping variable. I've also played around with the colors and formatting a bit to make the plot (I hope) a bit easier on the eyes.

p = ggplot(CPU, aes(ts, metrics, group=group)) + 
  geom_area(colour=hcl(240,100,20), fill=hcl(240,70,60), lwd=0.25) + 
  xlab("Time") + ylab("CPU") + ggtitle("CPU") +
  theme_bw()

enter image description here

If you want to get rid of the spaces where there is no data, you can use facetting to plot each portion of data in its own panel, and then reduce the margins between panels to move the panels closer together. I've set panel.margin=0.1. Set it to zero if you want no space between the panels. Note that this facetted version of the plot can be misleading, because the x-scale is no longer linear:

library(scales)

p + facet_grid(. ~ group, space="free_x", scales="free_x") +
  scale_x_datetime(breaks=seq(as.POSIXct("2015-11-30"), max(CPU$ts), "1 day"),
                   minor_breaks=seq(as.POSIXct("2015-11-30"), max(CPU$ts), "1 hour"),
               labels=date_format("%b %d, %Y")) +
  theme(axis.text.x=element_text(angle=-90, hjust=0.5, vjust=0.5, size=11),
        panel.margin = unit(0.1, "lines"), 
        strip.text=element_text(size=0),
        strip.background=element_rect(fill=NA, color=NA)) +
  coord_cartesian(expand=0)  # Gets rid of x-axis padding so data goes all the way to the edges

enter image description here

UPDATE: When I created fake data to address your question, I created gaps by setting some rows to NA. It looks like your gaps are due to larger time intervals between measurements, but without any missing rows. In that case, you just need a different strategy to create the groups. I couldn't get your sample data to load properly, so here is another example with fake data that mirrors (as far as I can tell) the structure of your data:

# Fake data
set.seed(1003)
CPU = data.frame(ts = seq(as.POSIXct("2015-11-30 00:00:00"), 
                          as.POSIXct("2015-12-07 00:00:00"), length.out=1000),
                 metrics=c(runif(1000,0,10)))

# Create a couple of larger time gaps by removing some rows. 
CPU = CPU[-c(100:200, 500:600),]

In the data above, a time gap of more than about 10.1 seconds represents a "large" gap (table(diff(CPU$ts)) will show this), so increment the group value whenever the time gap between rows exceeds 10.1 seconds.

CPU$group = c(0, cumsum(diff(CPU$ts) > 11))

Then proceed exactly as before. You can use a similar strategy to mark the gaps in your real data.

eipi10
  • 91,525
  • 24
  • 209
  • 285
  • Thanks @eipi10, I ran the exact code you posted here just to see the results and it return an error: Error in coord_cartesian(expand = 0) : unused argument (expand = 0) – user2103970 Jan 28 '16 at 21:48
  • Also, in my CPU data frame, there are no rows for the weekends, but yet there is a gap for those dates that represent the weekends. I notice "CPU$group = c(0, cumsum(diff(is.na(CPU$metrics)) != 0))" for my CPU data frame has only 1 group. – user2103970 Jan 28 '16 at 21:55
  • Regarding `coord_cartesian(expand=0)`, I'm using version 2.0 of ggplot2. If you're using an earlier version of ggplot2, try `coord_cartesian()` (or just upgrade to the latest version). Regarding the last comment, hard to know what's going wrong, as you didn't post a sample of your data. Please paste into your question a sample of your data that reproduces the issues you're still having (paste in the output of `dput(data_sample)`). – eipi10 Jan 29 '16 at 01:29
  • I upgraded ggplot2 to 2.0.0, ran the code again and coord_Cartesian(expand=0) worked fine. I have ran dput(head(CPU)) and posted at top to show the sample of the data, as well as screenshot of the data frame in rstudio. I noticed your sample code "CPU$group = c(0, cumsum(diff(is.na(CPU$metrics)) != 0))" returns 8 unique groups (0 - 7), where as mine show only 1 group (0), I have shown this in the above posting as well. – user2103970 Jan 29 '16 at 03:28
  • Two things: First, don't paste a picture of the data. Paste the actual text of the data. The goal is to get something that we--the answerers--can copy and paste into our own R consoles. Second, we need a sample of data *that recreates the problem you are having when we run your code*. So pick a sample of data that's as small as possible, but large enough to have gaps when you plot it and paste that in using `dput`. See [this SO answer](http://stackoverflow.com/a/5963610/496488) for how to make a reproducible example. – eipi10 Jan 29 '16 at 05:06
  • I have removed the image/picture and replaced it with dput output at the top of the post. I have cut a subset of the data where I am faced with the issue. – user2103970 Jan 29 '16 at 20:11