Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Win Form Charting

I may be asking the wrong question, but what I need is to add a "Guide Line" to my windows form chart. In other words I have a chart with a simple data series and I need to draw a line on the y axis at the passing score, or 80%. I don't want to add a second series as the first series has an undetermined number of data points. Is there a simple way to simply draw one line on the y axis? The dashed line below is what I am shooting for(it does not need the arrows).

100|
   |
 90|
   |                     o
 80|<----------------------->
   |
 70|      o                  o
   |
 60|         o
   |   o        o
 50|o              o
   |_________________________
    1  2  3  4  5  6  7  8  9
like image 550
Siegeon Avatar asked Sep 21 '11 16:09

Siegeon


1 Answers

Apologies for repeating Don Kirkby's answer, but I don't have the rep to add a comment yet.

Using HorizontalLineAnnotation you can set the ClipToChartArea which will limit the extent of the line to within the chart, to solve the problem you mentioned.

ChartArea area = ...;

var line = new HorizontalLineAnnotation();
line.IsInfinitive = true; // make the line infinite
line.ClipToChartArea = area.Name;
line.LineDashStyle = ChartDashStyle.Dash;

Assuming your y-axis holds values on a scale of 0..1 then you can attach the line to the Y-Axis using line.AxisY = area.AxisY, which results in its position being interpreted as an axis value, then set line.Y = 0.8; to attach at the 80% position.

like image 171
russw_uk Avatar answered Sep 25 '22 03:09

russw_uk