SciChart® the market leader in Fast WPF Charts, WPF 3D Charts, and iOS Chart & Android Chart Components

0 votes
1k views

Hello again! đŸ™‚

This time I am trying to draw marker for a maximum numeric data value in chart with CategoryDateTime X axis.

I have my X axis defined like this:

id<SCIAxis2D> xAxis = [[SCICategoryDateTimeAxis alloc] init];

and I am trying to draw a marker in draw() method of a custom modifier using this code:

 id<SCIRenderPassData> data = [_rSeries currentRenderPassData];
 id<SCICoordinateCalculator> xCalc = [data xCoordinateCalculator];
 id<SCICoordinateCalculator> yCalc = [data yCoordinateCalculator];
 NSLog(@"Is category calc: %d", [xCalc isCategoryAxisCalculator]);
 double xCoord = [xCalc getCoordinateFromDate:_xValue];
 double yCoord = [yCalc getCoordinateFrom:_yValue];
 [_marker drawToContext:context AtX:xCoord Y:yCoord];

My _xValue is computed and set from outside and is for sure is a valid date on X axis for which I need to draw the marker on.

My problem is that:

  1. xCoord is always 0.
  2. NSLog line prints 0 to debug console, meaning that xCalc is not CategoryAxisCalculator. I suspect this is why xCoord is always 0.

My questions are:

  1. Am I trying to compute xCoord the right way? I need it for drawing the marker and I have a date for which I want marker to be placed on.
  2. Why [data xCoordinateCalculator] returns something that is not CategoryAxisCalculator even though my axis is a category axis? Is this expected behaviour?

Looking forward to your always useful reply. đŸ™‚

  • Igor Peric asked 2 years ago
  • last active 2 years ago
1 vote
3k views

Hi,
I am using a SciStockChart and trying to add Trade Markers as outlined here https://www.scichart.com/annotations-adding-trade-markers-to-a-chart/. However, I am not getting a proper xCoordinate from the coordinate calculator. I believe SciStockChart is using a CategoryCoordinateCalculator and I must do an extra step in order to get the proper result from the DateTime input. Here is the line that is not working correctly. double xCoord = xCoordCalculator.GetCoordinate(trade.ExecutionTime.Value); Is there another step I need to take in order to get the proper xCoord value?
thanks,
Dewey

Showing 2 results
This template supports the sidebar's widgets. Add one or use Full Width layout.