fair-acc / chart-fx

A scientific charting library focused on performance optimised real-time data visualisation at 25 Hz update rates for data sets with a few 10 thousand up to 5 million data points.
GNU Lesser General Public License v3.0
499 stars 92 forks source link

Feature request (bug?) center handle position in HeatmapChart Pixels #588

Open wolfig opened 1 year ago

wolfig commented 1 year ago

Use Case I want to use the HeatmapChart to visualize the progress and result of a 2D scanning process. This means, my program sends X * Y equidistant setting values to two instruments and registers one readout value z to each of the x, y settings.

Current Situation When rendering the corresponding data, the handle/origin of each of the pixels representing one x,y,z triple is not centered.

Example: consider a data set with 4 x,y,z "pixels" x = [ 10.4, 13.5 ] y = [ -3.2, -3.05 ] z = [ 1, 2, 3, 4 ]

The resulting chart looks like this:

image

Problem / Bug For a user, the positions of the scan values is confusing. I hope the image tells enough what I mean.

Expected Behavior / Feature Request Adjust the alignment of axes and pixels in a way that the x, y coordinates are centered in the "pixels" representing the x, y, z data. This behavior can be optional where the default is the existing behavior. Here an illustration of the expected behavior:

image

Note The expected behavior requires the suppression of minor ticks and the explicit setting of ticks which is (to my knowledge) not possible with the current implementation of DefaultAxis. I will create another issue asking for this feature.

Environment:

RalphSteinhagen commented 1 year ago

@wolfig the present implementation is derived from 2D histograms that are defined via their bin boundaries and not their centres. You could either change the definition of the underlying DataSet w.r.t. how the data is being represented or make a "hack" involving the axis ranges.