Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine

Re^3: [OT] Displaying 4D data ... (Heatmap)

by luis.roca (Deacon)
on Jan 04, 2012 at 02:53 UTC ( #946186=note: print w/replies, xml ) Need Help??

in reply to Re^2: [OT] Displaying 4D data ... (Quick SVG Sketch)
in thread [OT] Displaying 4D data in a 2D image.

I suppose better late than never. You've probably solved this and moved on but I increasingly feel a good candidate to represent a large volume of data like this would be a heatmap. I'm pretty certain that through color value and saturation you could abstractly accommodate data volume and frequency.

In addition to the heatmap examples (starting with the fifth one down) on the following page there are number of well executed 2 dimensional graphs.

"...the adversities born of well-placed thoughts should be considered mercies rather than misfortunes." Don Quixote
  • Comment on Re^3: [OT] Displaying 4D data ... (Heatmap)

Replies are listed 'Best First'.
Re^4: [OT] Displaying 4D data ... (Heatmap)
by BrowserUk (Pope) on Jan 04, 2012 at 06:38 UTC
    You've probably solved this and moved on

    Actually no. This is a back-burner project I've been re-visiting in quiet moments on and for several years. I've arrived at several partial solutions (to the underlying problem rather than the graphing), but I'm generally looking for faster, better, more complete solutions and the graphing is means to one possibility.

    I increasingly feel a good candidate to represent a large volume of data like this would be a heatmap.

    Heatmaps work well for 3D data on a 2D graph per the examples you linked. They can also work pretty well for 4D data on a 3D graph where the 4th dimension is a continuous function -- like this for example.

    But for my datasets, the 4th dimension is discrete and can cover a huge range -- potentially more than there are colors in 24-bits. But even when the range is more reasonable, picking out small variations in the colors of individual pixels is beyond the scope of human eyes. Mine at least.

    The best solution I've thought of to date, would be to plot the 4th dimension as a vertical line on top of the 3rd dimension point. Piss poor description :(

    If you imagine the following to be a 2D slice through a 3D plot which is oriented squarely with X running horizontally, Y running 'into' the screen, and Z vertically. Then the vertical lines represent the (log10 of the) 4th dimension with the base of the line being the Z point:

    Z-max -| -| | -| | | | -| | | | -| | | ||| -| | | ||| ||| -| | || | || | |||| -| | || || | | || | -| | | | ||| || || | -| | | | | || | -| | | || | -| | | | || -| | | | || -| | | -| Z-min -+------------------------------------------------+ X-min X-max

    The vertical lines would be continuous. Their low extremity would be the Z-value. Their length the log10 of the frequency.

    Now put many of those slices together in the Y dimension with perspective etc. in a 3D plot and you get a visual representation that shows how the data clusters, but also the peaks and outliers within each cluster.

    My only problem now is that I cannot work out how to persuade gnuplot to draw it for me :(

    With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.

    The start of some sanity?

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://946186]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (2)
As of 2021-05-13 05:21 GMT
Find Nodes?
    Voting Booth?
    Perl 7 will be out ...

    Results (134 votes). Check out past polls.