开发者

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 seri开发者_Python百科es 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


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.


You can add a StripLine.

Use StripWidth property to set line position:

var series = chart1.Series[0]; //series object
var chartArea = chart1.ChartAreas[series.ChartArea];
chartArea.AxisY.StripLines.Add(new StripLine
                                           {
                                               BorderDashStyle = ChartDashStyle.Dash,
                                               BorderColor = Color.DarkBlue,
                                               StripWidth = 80//Here is your y value
                                           });

UPDATE: Previous version of this answer used Interval instead of StripWidth. As @dthor correctly pointed out in the comments setting the Interval will draw a repeated strip line. In the example above, Interval is set to 0 by default.


I've never used charts, but HorizontalLineAnnotation sounds promising.


You can add dots to the frame with a loop that has for example 900 loop for 1 to 9 values. For each loop the compiler will calculate the value and left a dot for that perimeter and another for the next one so it will looks like a line of a equation :)

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜