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 <jhs0...@gmail.com <mailto:jhs0...@gmail.com>>


    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@lists.sourceforge.net
    <mailto:Pgfplots-features@lists.sourceforge.net>
    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
_______________________________________________
Pgfplots-features mailing list
Pgfplots-features@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pgfplots-features

Reply via email to