Re: Re: ListPlot with missing values
- To: mathgroup at smc.vnet.net
- Subject: [mg22485] Re: [mg22419] Re: ListPlot with missing values
- From: BobHanlon at aol.com
- Date: Sun, 5 Mar 2000 00:24:20 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
alist = {{1, 1}, {2, 3}, {3, 5}, {4,}, {5, 6}, {6, 8}, {7,}, {8, 10}, {9, 12}}; plt = ListPlot[Cases[alist, {_?NumericQ, _?NumericQ}], PlotJoined -> True, DisplayFunction -> Identity] //. (Line[{s___, x_, y_, e___}] /; y[[1]] > x[[1]] + 1) :> {Line[{s, x}], Line[{y, e}]}; Show[plt, DisplayFunction -> $DisplayFunction, PlotRange -> {{0, 9}, {0, 12}}]; Bob Hanlon In a message dated 3/1/2000 2:30:16 AM, rmendels at pfeg.noaa.gov writes: >First, thanks to all who answered. I clearly didn't explain the problem >carefully enough. Assume we are plotting a time series with missing >data, and only want to conect consecutive points that have data, have >blanks whenever a time point is missing, and still want points lined up >correctly in time on the x axis. If I just delete cases, then the >endpoints of any missing segment will be connected, rather than being >blank. > >In the example > >alist = {{1, 1}, {2, 3}, {3,5},{4,}, {5, 6}, {6,8},{7,}, {8,10},{9, 12}} > >I want a line joing the first three points, then a blank, then a line >connecting the next two points, then a blank etc. > >The reason I mentioned the number of datapoints is because one solution >is to draw a graph for each uninterrupted segment of the time series, >and then overlay them. This seems inelegant,because several hundred >separate graphs might have to be drawn. > >If anyone else has other suggestions I would welcome them. >