There are so many time series charting tools, why another one?
It's true, there are hundreds of charting tools out there, but Timeplot is unique in supporting all of these features:
- it doesn't require any plugin to be installed in your browser
- it doesn't require any software to be installed on the server
- it's based on Timeline's code so it's naturally capable of reusing event data and mash it up with time series
- it's highly modular: you can write your own time series processing algorithms or your own layout geometries and add them directly from your pages (without having to wait for us to add them).
- it's open source software (under a BSD license)
Why does Timeplot keep axis values information inside the chart instead of outside as most charting tools do?
Timeplot works by taking over a
div in your HTML and tries to maximize the amount of space that it's taken by the time series plot in that given box. By placing the axis values inside the box, we are able to draw larger plots even if sometimes, the values do overlap with the chart. For that reason, Timeplot allows you to position the values left/right or top/bottom, so you can decide which way is less cluttered for your needs.
Why didn't you just add time series plotting support to Timeline?
That's where we started, but after some consideration we realized that it was easier to reuse the data layer from Timeline and rewrite the rendering layer than trying to put a square in a round hole. We also believe that Timeline and Timeplot serve different enough purposes to benefit from being two different products (but also benefit from being inter-operable).
What kind of data formats does Timeplot support?
Currently, Timeplot is able to read tabular data in textual format where the first column is a ISO8601 date (yyyy-mm-dd will do, for example) and the column are separated by the same characters (here, you can use space, tab, comma, pipe or any string you want, as long as it's the same across all columns). The reason for such a simple format is to maximize the ability for people to find Timeplot immediately useful and start to expose their data to the web in a more natural form. Note that the date handling for Timeplot has no notion of missing points; that is, if the value of your data on some days is 0, you must explicitly state as much in your data instead of skipping that point altogether.
Also, Timeplot reuses the Timeline data fetching subsystem so it's capable of getting event data from any source that can feed Timeline.
What kind of time series processing functions does Timeplot ship with?
Currently, Timeplot supports "sum" and "average". Sum is the integral of the time series, creating the cumulative count of the values over time, while Average computes a smoothed curve using a moving window. The size of the moving window can be specified as a parameter.
I have two columns and I want to plot the difference between them, does Timeplot support that?
Yes, it does. This example does exactly that. Also note that you can add your own DataSource that performs operations on the data that Timeplot has read.
Can I plot on a logarithmic scale?
Sure. In Timeplot, the subsystem responsible to translate a value to a screen coordinate is called a Geometry and it's pluggable. There are "value geometries" (for the y axis) and "time geometries" for the (x axis). Timeplot ships with both a linear and a logarithmic value geometry and with a linear and a zooming time geometry. But you can also easily write your own and add them to Timeplot without having to modifying it if you have special needs.
Why are my values and grid labels all in a pile?
Timeplot used to only work when your browser was thrown into quirks mode, but this has been fixed. Try hitting shift and the reload button at the same time, the new files with the fix should be downloaded and the problem resolved. Those of you who worked around it before, go ahead and add your standards-friendly DTD back to your pages.
Why does Timeplot show my floating point numbers as integers? Can I easily change that?Yes, you can. This example shows how you do that (the gas prices are in dollars, but also with cents). Basically, it's a matter of setting the
roundValues: falseproperty when invoking