Find the x for y in chart

Hi.

If i know the y value how can i find the x value and vice versa?

Example for (Chart1.SeriesList.Series[0].MaxYValue) how can i find the x ?
LVL 16
CodedKAsked:
Who is Participating?
 
Russell LibbyConnect With a Mentor Software Engineer, Advisory Commented:
Assuming that the x values and y values are unique, the following functions could be used against a given chart series.

Russell

---

function FindXForY(YValue: Double; Series: TChartSeries): Double;
var  dwIndex:       Integer;
begin

  // Set default result
  result:=0;

  // Find the index of the y value
  for dwIndex:=0 to Pred(Series.YValues.Count) do
  begin
     if (Series.YValue[dwIndex] = YValue) then
     begin
        // Return the x value
        result:=Series.XValue[dwIndex];
        // Done
        break;
     end;
  end;

end;

function FindYForX(XValue: Double; Series: TChartSeries): Double;
var  dwIndex:       Integer;
begin

  // Set default result
  result:=0;

  // Find the index of the y value
  for dwIndex:=0 to Pred(Series.XValues.Count) do
  begin
     if (Series.XValue[dwIndex] = XValue) then
     begin
        // Return the y value
        result:=Series.YValue[dwIndex];
        // Done
        break;
     end;
  end;

end;

0
 
Russell LibbySoftware Engineer, Advisory Commented:

The MaxYValue property returns the largest Y value in the chart series, it does not return you the index of the data point (which would be needed in order to get the corresponding X value). You could walk the series YValues[index] until you found the yvalue that = MaxYValue, which would then give you the index, but if there are 2 data points where the YValue = MaxYValue, then you would not be able to determine what data point you needed to get. Eg, given the 6 sample data points in the format of index = (x, y)

0 = (1, 5)
1 = (2, 7)
2 = (10, 20)
3 = (11, 14)
4 = (15, 12)
5 = (8, 20)

The series MaxYValue would return 20. But because there are 2 data points with Y=20, you would be unable to determine if the corresponding X value was supposed to be 10 or 8. So, only if EVERY y value and EVERY x value is unique, will you be able to do what you are asking.

Russell

0
 
CodedKAuthor Commented:
Thank you Russell.

But how can find the x. Given that y is unique.
Can you tell me the commands?
0
 
CodedKAuthor Commented:
Thank you very much Russell :)
0
 
Russell LibbySoftware Engineer, Advisory Commented:
No problem,
Russell
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.