Open iCubeDm opened 7 months ago
Seems interesting to add. Is the data related to the heatmap different from the one used to plot the lines? In this case, I would add the possibility to plot this kind of heatmap And plot another function on top of it.
Both options are valid. When I was playing around with it, I had both tasks to plot statistical data as you've described above and price/volume data for the financial charts.
The idea behind is that using a gaming engine allows you to leverage the power of GPU when displaying a big amount of shapes, while when you try to plot HiRez heatmaps using CPU (e.g. 1920x1080) it starts to take way too long to render.
For the tests, I've used the following example (attached the picture) While the main value is growing, the "temperature" of the value cell is growing as well.
In my particular usecase the data is the same on the heatmap and line, which is plotted on top. When you work with financial data, there is not only dimensions of time and price, but also volume, which is important, and if you can plot the behavior of volume on the background of the chart, you get much more info visualized.
Nice, thank you for explaining some details.
The first approach I'm thinking of is introducing an additional dimension for the Function
class - the z
.
It could be used both to give information about the "temperature" of the heatmap, but also applied in different kind of charts (I'm thinking about the Bubble Chart, where the z
dimension is translated to the size of each bubble).
This should let heatmaps be easy to integrate and at the same time keep some flexibility in how the temperature should be interpreted: your last example shows an increasing temperature which follows the curve of the LineChart (I suppose a function such z = a*x
), but the z
axis could also be independent from the x,y
ones in order to cover the former examples you gave.
but the z axis could also be independent from the x,y ones in order to cover the former examples you gave.
All correct.
The idea of having z
dimension in the 2 dimensional function is great!
Nevertheless, it would be interesting and challenging to align background heatmap with the lineChart and/or scatter plot.
When I tried to do this with JavaFX, that was quite challenging topic.
Btw, if you want gists from my experiments, I can provide it ;)
hey @iCubeDm . Thanks for your feedback. Yes! Some reference would be very useful to have something to start with from scratch :)
@fenix-hub Here is the gist: https://gist.github.com/iCubeDm/dd743e8260ce81ff604595429232a4d2
warning! it is quite dirty as it was a pure experiment)
Describe the solution you'd like There are some visualization tasks requiring the support of the heatmap - isolated or in combination with other plots.
Describe an implementation suggestion The idea behind heatmaps charts is to create an additional pane and divide it to the small rectangles, centered in every (x,y) coordinate. That's how the heatmap matrix is created. Then, based on the provided data, every column has to be displayed with the gradient color and values passed to the each rectangle should be normalized from 0.0 to 1.0 Based on this gradient is displayed.
alternative option: every frame the full heatmap data is provided and normalized from 0.0 to 1.0, and the same logic applies
Additional context As a reference here are couple of screenshots from existing applications and custom implementations