Re: Pgfplots vs. PGF's data visualization library
Dear Joshua,
I think I can try a preliminary comparison from my point of view.
Let me start with the state-of-the-art in PGF, which is probably known
to you:
The actual PGF stable 2.00 has "data visualization" - namely the
\draw plot ...;
paths which get data points and do some sort of visualization, depending
on a 'plot handler'.
Clearly, this approach is rather limited in many aspects. For example,
there is no real way to map input data to the canvas short of
identifying input coordinates with canvas points (which means that you
can't visualize something beyond +-16000).
Its accuracy is low, it has no way to draw axes automatically, it
supports only up to three coordinates... and so on.
The pgfplots package separates the input data and the visualization by
introducing a further survey phase in which limits are computed and
transformations prepared. It then does a visualization phase in which
the data is transformed and drawn onto the canvas, furthermore, an
appropriate axis is drawn around it. The idea is: the user provides the
data and pgfplots does the rest automatically, including axis
descriptions or further options provided by the user.
However, until the next of pgfplots, the basic level interface of
pgfplots is still that of the PGF 'plot handlers' (with some extensions
like color data and additional error bar support). If someone wants to
add a new plot handler, he can add a PGF plot handler and that one is
automatically usable in pgfplots. This is sufficient for most
visualizations, but try quiver plots - they need (x,y,z) and (u,v,w) and
perhaps color (for every point). Quiver plots are implemented in the
pgfplots unstable, but the basic level interface is no longer that of
PGF 2.00 -- instead, it will become that of the PGF DV engine.
The PGF DV engine is an attempt to re-implement the whole process of
data visualization on a basic level: it provides the aforementioned
survey phase and the visualization phase directly and it provides
extensible ways to input coordinates. You can already glimpse at these
things when you browse through Till's preliminary documentation. Besides
the basic level interface, it will also contain a high level interface
to actually pack these things together.
Currently, the PGF DV engine has a systematic programmer's API together
with its documentation, and documentation for high-level user interfaces
will come when Till is ready.
Conceptionally, pgfplots aims at being a high-level tool. It provides
user interfaces for data visualization, and it aims at describing how to
use them and how to modify their parameters. In its current state, the
DV engine is an application programmer interface. Tools like pgfplots
can be implemented on top of it, using it without the user noticing that
he does so. But if someone writes his own way to provide coordinates in
terms of the DV engine, this tool can be used by all applications which
use the DV engine as core. Similar aspects hold for new plot handlers:
pgfplots is high-level, it provides various different pre-defined plot
handlers and documents how to use them and how to modify parameters. If
someone writes a new plot handler for the DV engine, and pgfplots
supports the interfaces of the DV engine, you can directly use the new
one as well.
The DV engine also supports (or will support when it is complete,
compare the existing examples in the pgf manual) a high-level interface,
including axes and axis styles. This repeats functionality of pgfplots
(with a different user interface). Of course, these features will use
the interfaces of the DV engine and its equivalent to "plot handlers",
but it will use its own set of parameters, its own way to set them and
its own way of actually drawing descriptions and axis lines. Thus,
pgfplots and the pgf DV styles may both be on the same basic level
interface, but they handle things differently and probably in an
incompatible way. The user will have to decide which one he prefers.
Currently, the basic level interfaces of pgfplots are being refactored
in preparation to the DV engine (and include already advanced
visualization techniques like contour plots, quiver plots, histograms,
or patch plots, compare the sourceforge website containing an unstable
TDS build). When the DV engine comes, there are plans for an adapter
between the pgfplots and pgf DV interfaces.
While (probably most of the) plot handlers and input types will be
compatible in some way, the sets of supported features and the
respective high-level user interfaces to display axes will be different
as far as I can see from Till's high-level styles.
This is how I see the DV engine as it exists so far in relation to pgfplots.
Best regards
Christian
2010/10/13 Joshua Smith <jhs0807@... <mailto:jhs0807@...>>
On the pgf-users email list, it was announced that a new version of
pgf would be released later this year, but without the DV library.
Another curious user asked what the DV library is, and Stefan pointed
to part V of the manual of the CVS version of PGF, which describes a
data visualization library.
A lot of what is described seems to repeat functionality present in
pgfplots. Can anyone provide a brief, but more thorough comparison
between pgfplots and what is being coded directly into pgf as the data
visualization library?
Thanks,
Josh
------------------------------------------------------------------------------
Beautiful is writing same markup. Internet Explorer 9 supports
standards for HTML5, CSS3, SVG 1.1, ECMAScript5, and DOM L2 & L3.
Spend less time writing and rewriting code and more time creating great
experiences on the web. Be a part of the beta today.
http://p.sf.net/sfu/beautyoftheweb
_______________________________________________
Pgfplots-features mailing list
Pgfplots-features@...
<mailto:Pgfplots-features@...>
https://lists.sourceforge.net/lists/listinfo/pgfplots-features
------------------------------------------------------------------------------
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store
http://p.sf.net/sfu/nokia-dev2dev