Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Null values in Annotated Timeline #25

Closed
orwant opened this issue May 9, 2015 · 44 comments
Closed

Null values in Annotated Timeline #25

orwant opened this issue May 9, 2015 · 44 comments

Comments

@orwant
Copy link
Collaborator

orwant commented May 9, 2015

What would you like to see us add to this API?
-The Annotated Timeline graph should not draw a line if there are 'null' values 
in the dataset. 
Instead there should be a gap in the data.



What component is this issue related to (PieChart, LineChart, DataTable,
Query, etc)?
-Annotated Timeline


*********************************************************
For developers viewing this issue: please click the 'star' icon to be
notified of future changes, and to let us know how many of you are
interested in seeing it resolved.
*********************************************************

Original issue reported on code.google.com by AndyJessCalendar on 2009-08-10 12:16:48

@orwant
Copy link
Collaborator Author

orwant commented May 9, 2015

This should be an option (if at all), as the default behavior should remain as it is
today - to draw the line 
between the existing data points.

Original issue reported on code.google.com by razbarvaz on 2009-08-10 14:55:50

@orwant
Copy link
Collaborator Author

orwant commented May 9, 2015

Agreed, an option would be good. 
I do feel though that a straight line between data points either side of a null or
nulls 
suggests there is data for that period (at least visually) rather than a genuine break
in the 
data. 
Interestingly the Image Line Chart and Sparkline graphs do handle nulls in this way.

Original issue reported on code.google.com by AndyJessCalendar on 2009-08-10 16:41:06

@orwant
Copy link
Collaborator Author

orwant commented May 9, 2015

Agree that this would be nice, but it should be an option.  Not high priority in my
book though.

Original issue reported on code.google.com by lisa.woodring on 2009-11-13 16:07:47

@orwant
Copy link
Collaborator Author

orwant commented May 9, 2015

Agreed! It would be nice for motion charts as well.

Original issue reported on code.google.com by jhmkiller on 2009-12-09 21:31:51

@orwant
Copy link
Collaborator Author

orwant commented May 9, 2015

Lisa, 
Thanks for your response. I do feel that this is an issue which is fundamental to the

way in which data is handled and viewed on this graph. 
I work for King's College London running the London Air Quality monitoring network

(www.londonair.org.uk)
The annotated timeline would be perfect for displaying pollution levels measured at

sites around the city but the analysers often break and so there are often breaks in

the data with nulls in the dataset.
If the graph draws a line between two points (say midnight one day to midnight the

next) over a period of nulls then to the public it will look like the pollution level

was flat or rising over that day rather than the reality which is that there was no

data recorded that day.
We would absolutely love to use the annotated timeline on our site, but we can't until

this issue is solved.
Andrew Grieve
andrew.grieve@kcl.ac.uk

Original issue reported on code.google.com by AndyJessCalendar on 2009-12-14 16:43:35

@orwant
Copy link
Collaborator Author

orwant commented May 9, 2015

Comment to AndyJessCalendar:
I do not work for/at Google.  I was agreeing with you.  I would also like for this
item to be fixed -- with an option of whether to show a break in the line or to
"connect the dots".

Original issue reported on code.google.com by lisa.woodring on 2009-12-14 17:58:10

@orwant
Copy link
Collaborator Author

orwant commented May 9, 2015

Ah, Sorry Lisa, my mistake. 
Well, let's hope they see the conversation thread and the other folks who would also

like to see this fixed and escalate it's priority.
Andrew

Original issue reported on code.google.com by AndyJessCalendar on 2009-12-15 09:24:25

@orwant
Copy link
Collaborator Author

orwant commented May 9, 2015

Hello Razbarvaz,
I know this issue has been accepted and is low priority but do you have an estimate
of 
when a fix will be released? 
Very keen to use annotated timeline on our site.

Thanks,
Andrew

Original issue reported on code.google.com by AndyJessCalendar on 2010-01-15 17:01:15

@orwant
Copy link
Collaborator Author

orwant commented May 9, 2015

I also agree that this feature would be highly beneficial. I am using the annotated
time line to show nutrient concentration levels in stream water alongside discharge
levels and the connecting line is very misleading!

Original issue reported on code.google.com by danjones1242 on 2010-03-01 17:42:16

@orwant
Copy link
Collaborator Author

orwant commented May 9, 2015

AnnotatedTimeLine should definitely not display a connecting line between 2 points if
there are null values inside the 2 points interval. At least for the use cases I have.

Regards,

Dan

Original issue reported on code.google.com by ddanny on 2010-06-24 11:21:31

@orwant
Copy link
Collaborator Author

orwant commented May 9, 2015

I'm a statistician guy, and I've dealt with data visualization packages such as R, SPSS,
etc. in the past. I feel this behavior in gviz is definitely wrong.

I'm currently developing a webapp for real-time monitoring of a wide area wireless
network. I do use the annotated time line, but my audience is mislead when lines are
drawn for null values (e.g. when a network site goes down then goes up, one can't notice
a problem occurred. My current fix is to replace null values with zeros).

This is a high priority issue, in my opinion.

Regards.
Theo

Original issue reported on code.google.com by rotoudjimaye.theo on 2010-06-30 14:47:12

@orwant
Copy link
Collaborator Author

orwant commented May 9, 2015

I believe the method in which null values are handled should be optional.  I personally
would not want to see a gap in the line when null values are present.  Instead, I'd
prefer to continue graphing with the previous non-null value in the timeline.  

I'm trying to visualize changes to an inventory stock level over time based on key
business events.  If I have an event that removes ten widgets from inventory, I want
the inventory value to go down by 10 units, but the new inventory level should remain
the same for the rest of the timeline until the next event occurs that impact inventory
levels.  Just because we had no orders doesn't mean our inventory disappeared.

The only work around I have currently is to generate data sets for days in which no
activity occurs.  This is a lot of data to pass unnecessarily. 

Original issue reported on code.google.com by joseph.greer on 2010-06-30 17:40:15

@orwant
Copy link
Collaborator Author

orwant commented May 9, 2015

It seems to me that whenever the Annotated Timeline is used to displayed sensor-collected
data - gaps should be displayed. (Hardware) sensors are simply unreliable that way.

Original issue reported on code.google.com by tomerb on 2010-08-30 05:50:58

@orwant
Copy link
Collaborator Author

orwant commented May 9, 2015

Agreed;

1. This should not happen by default (hence an option of sorts)
2. Also if data is passed as {mon,teu,wed,thu,fri,mon} then Gviz should not add sat+sun
between fri and mon. 
3. The priority level should go up. 
4. How come Google Finance  does this ? eg.

http://www.google.com/finance?chdnp=1&chdd=1&chds=1&chdv=1&chvs=maximized&chdeh=0&chfdeh=0&chdet=1285272000000&chddm=1955&chls=IntervalBasedLine&q=NASDAQ:SCHL&ntsp=0

Let us know and thank you in advance

Regards, 
Ash

Original issue reported on code.google.com by ashaar.shaikh on 2010-09-23 14:34:11

@orwant
Copy link
Collaborator Author

orwant commented May 9, 2015

+1
I also don't understand why this issue has a low priority. I also require the described
behavior of the Annotated Timeline. Of course it shouldn't be done by default, but
it should be available via options.

Original issue reported on code.google.com by pipsoed on 2010-09-28 08:18:56

@orwant
Copy link
Collaborator Author

orwant commented May 9, 2015

Hm, by the way, to make it clear. There only should not be a line between existing data
points. On Google finance, as ashaar.shaikh has shown, they remove time. These are
two different things. However, it could be another option as well.

Original issue reported on code.google.com by pipsoed on 2010-09-28 08:28:38

@orwant
Copy link
Collaborator Author

orwant commented May 9, 2015

Absolutely this feature should be added. If no data exists right now, a line is drawn
and can easily be misinterpreted. Please up the priority on this!

Original issue reported on code.google.com by vikigoff on 2010-10-14 03:43:55

@orwant
Copy link
Collaborator Author

orwant commented May 9, 2015

It's great to see so many people agreeing with my original feature request. 
As you can see though i raised this over a year ago and nothing has happened, nada,
not a squeak. 
I gave up and used dygraphs instead, much better for use with scientific datasets and
because they're done in javascript - no need for flash plugin.
danvk.org/dygraphs/

Andy

Original issue reported on code.google.com by AndyJessCalendar on 2010-11-03 13:36:41

@orwant
Copy link
Collaborator Author

orwant commented May 9, 2015

I agree. Data shouldn't be interpolated in some cases and in my humble opinion this
option is a must and no low priority enhancement.

Original issue reported on code.google.com by ashdam on 2011-01-21 10:24:40

@orwant
Copy link
Collaborator Author

orwant commented May 9, 2015

I am using dygraph because of this issue. There are some subtleties that ought to be
implemented in Annotated timeline:

* Null is sometimes a break in data values and sometimes not. The line drawing needs
an option (by column) to decide whether to draw a line 'over nulls' or break it.
* NaN is always a break.

My data consists of weather readings. If the temperature readings from two stations
are plotted on the same chart then (typically) the readings are not taken at exactly
the same time. This means that (typically) each row in the DataTable only has a reading
from one station and the other is null. This is the case to draw lines over nulls.
However, one station can go offline, and then you want a way to signal that line break.
Hence the use of NaN.

Philip

Original issue reported on code.google.com by philip.j.s.gladstone on 2011-01-21 16:42:39

@orwant
Copy link
Collaborator Author

orwant commented May 9, 2015

Absolutely hope this gets sorted out. Would love to have the option.

Original issue reported on code.google.com by wells.oliver on 2011-02-09 06:13:44

@orwant
Copy link
Collaborator Author

orwant commented May 9, 2015

Agreed, this issue needs to be sorted out.

Original issue reported on code.google.com by admin@42droids.co.uk on 2011-03-04 15:59:32

@orwant
Copy link
Collaborator Author

orwant commented May 9, 2015

Very important feature for our team too. Google already does this in its Google Finance
charts:
http://www.google.com//finance?chdnp=1&chdd=1&chds=1&chdv=1&chvs=maximized&chdeh=0&chfdeh=0&chdet=1310745480000&chddm=825&chls=IntervalBasedLine&q=NASDAQ:GOOG&ntsp=0

The date range feature would also be nice,

Original issue reported on code.google.com by khosla.kunal on 2011-07-19 21:38:03

@orwant
Copy link
Collaborator Author

orwant commented May 9, 2015

Agreed, this issue should be sorted out.

Original issue reported on code.google.com by vincenzo.manzoni on 2011-09-06 14:15:55

@orwant
Copy link
Collaborator Author

orwant commented May 9, 2015

I need this! I can't use the timeline without it unfortunately.

Original issue reported on code.google.com by chris@visualwind.co.uk on 2011-11-28 00:07:49

@orwant
Copy link
Collaborator Author

orwant commented May 9, 2015

Guys, you should try Flot instead.

Original issue reported on code.google.com by pipsoed on 2011-11-28 08:10:33

@orwant
Copy link
Collaborator Author

orwant commented May 9, 2015

In a time series (for example a daily event count) the days with no event appears as
missing, but it would be better treat them as zero values (i.e. “0” events). This would
be another useful option. 

Giovanni

Original issue reported on code.google.com by gr235589 on 2011-12-11 09:21:32

@orwant
Copy link
Collaborator Author

orwant commented May 9, 2015

Unfortunately when the represented series can contain zero value normally (for e.g.
temperatures is °C), filling data gaps with zero values could be misleading. 

BTW it is one of the oldest issues, it has an accepted status, it has one of the most
stars and still nothing has been done.

Original issue reported on code.google.com by hauberger on 2011-12-11 09:31:20

@orwant
Copy link
Collaborator Author

orwant commented May 9, 2015

it's true, nevertheless there are time-series without zero values. in these cases why
not? 

Original issue reported on code.google.com by gr235589 on 2011-12-17 06:29:11

@orwant
Copy link
Collaborator Author

orwant commented May 9, 2015

Could you tell if there’s any hope to get this issue solved?

Original issue reported on code.google.com by support@mafiaonline.ru on 2012-04-11 12:39:40

@orwant
Copy link
Collaborator Author

orwant commented May 9, 2015

This is a major issue for me too, any chance of a fix?

Original issue reported on code.google.com by sales@acewebdesign.com.au on 2012-04-30 12:55:19

@orwant
Copy link
Collaborator Author

orwant commented May 9, 2015

It's the only thing holding us back from integrating Google Visualizations into our
suite of Habitat monitoring and environmental/conservation efforts.

Original issue reported on code.google.com by stryder.c on 2012-06-07 18:36:05

@orwant
Copy link
Collaborator Author

orwant commented May 9, 2015

This is a major issue, which seems trivial to solve. I can't believe that nothing has
happened since this was reported over three years ago now.

Original issue reported on code.google.com by e.pebesma on 2012-10-23 21:13:01

@orwant
Copy link
Collaborator Author

orwant commented May 9, 2015

I think that Annotated Timeline is now deprecated. The existing line charts do support
having breaks in the data. Although, if you are plotting multiple lines on the same
axes and sometimes want the line to extend across missing values and sometimes not,
then it is more complicated to do (but doable)

Original issue reported on code.google.com by philip.j.s.gladstone on 2012-10-24 00:06:34

@orwant
Copy link
Collaborator Author

orwant commented May 9, 2015

I was hoping Google implemented this feature request as much as all of you, but suddenly
I realized why they don't do it, and here's the reason as I understand it:

Annotated Timeline takes as input Date objects and your graphed value.
Date objects specify time with up to a millisecond precision.

It does NOT require that your Dates are spaced-out regularly (every hour), it just
requires you provide WHEN an event occurred with up to millisecond precision and the
scalar data to show for that event.

IF they had to put zeroes everywhere there's no data, it would become useless, since
everywhere would be zeroes but only in the milliseconds where there are events would
you see a "Dirac's delta" showing the data, but inmediately the millisecond after they
would need to put a Zero.

So if you dont want all the milliseconds to be Zero, you have to say for how long you
want to show data everythime there's an event (say 1 hour).

I'm not sure I made myself clear :)

Elias Baixas

Original issue reported on code.google.com by elias.baixas on 2013-01-17 16:43:47

@orwant
Copy link
Collaborator Author

orwant commented May 9, 2015

SO The solution is:
chose a time interval, say 1 hour, translate your graphed events to be "magnitude in
one hour",

then after each event, if there's no "real data", put a zero, and pass it along to
google Timeline.

Original issue reported on code.google.com by elias.baixas on 2013-01-17 16:50:24

@orwant
Copy link
Collaborator Author

orwant commented May 9, 2015

This is not a solution. There are many cases where zero values cannot represent "NoData".
For e.g. in a temperature graph zero values can occur (just like now during the winter
time), representing missing data with zero values is misleading.

Your first post is not correct either. The behaviour we want is to stop plotting the
line at the last value before the "NoData" point and start plotting where there is
an actual data after a "NoData" point. You don't have to assign anything to the milliseconds
between the actual data points. It's only a matter of representation of the data series.


Forget the zero. This case is about 'Nodata'. 

Original issue reported on code.google.com by hauberger on 2013-01-17 17:00:49

@orwant
Copy link
Collaborator Author

orwant commented May 9, 2015

Understood,

it's just that my issue was different, I didn't get that your problem was with representing
NoData.

Anyway, my solution can be useful for some.

Thanks !

Original issue reported on code.google.com by elias.baixas on 2013-01-17 17:08:55

@orwant
Copy link
Collaborator Author

orwant commented May 9, 2015

Now it's implemented!, i'm using google charts+grails plugin, if you pass null value
in the array of data then line breaks and continues the next value, great!

Original issue reported on code.google.com by joselillo.agudo on 2013-05-23 14:04:52


- _Attachment: graph.png
![graph.png](https://storage.googleapis.com/google-code-attachments/google-visualization-api-issues/issue-25/comment-40/graph.png)_

@orwant
Copy link
Collaborator Author

orwant commented May 9, 2015

That is a Line Chart, not Annotated Timeline. Line Charts already had this feature.

Original issue reported on code.google.com by JankowiakDJ on 2013-05-24 16:08:11

@orwant
Copy link
Collaborator Author

orwant commented May 9, 2015

Hi! It's corrected with the new API! :-D

https://developers.google.com/chart/interactive/docs/gallery/annotationchart

Original issue reported on code.google.com by iforci on 2014-08-05 22:30:11

@orwant
Copy link
Collaborator Author

orwant commented May 9, 2015

As noted by iforci, the new AnnotationChart supports null values in the data to leave
a gap in the line.

Original issue reported on code.google.com by dlaliberte@google.com on 2014-08-05 23:50:49

@orwant
Copy link
Collaborator Author

orwant commented May 9, 2015

This is great, but where is the option to revert to the old behavior?

Original issue reported on code.google.com by ryan.mott on 2014-12-21 06:13:19

@orwant
Copy link
Collaborator Author

orwant commented May 9, 2015

Ryan,

Though it is not documented yet, you can turn on the 'interpolateNulls' option under
the 'chart' option, like so:

var options = {
  chart: {
    interpolateNulls: true
  }
};

Original issue reported on code.google.com by dlaliberte@google.com on 2014-12-21 21:16:30

@orwant orwant closed this as completed May 9, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant