赢表格图表

Sie*_*eon 9 c# charts winforms

我可能会问错误的问题,但我需要的是在我的Windows窗体图表中添加"引导线".换句话说,我有一个简单的数据系列图表,我需要在通过分数的y轴上绘制一条线,或80%.我不想添加第二个系列,因为第一个系列具有未确定数量的数据点.有一种简单的方法可以简单地在y轴上画一条线吗?下面的虚线是我拍摄的(它不需要箭头).

100|
   |
 90|
   |                     o
 80|<----------------------->
   |
 70|      o                  o
   |
 60|         o
   |   o        o
 50|o              o
   |_________________________
    1  2  3  4  5  6  7  8  9
Run Code Online (Sandbox Code Playgroud)

rus*_*_uk 8

抱歉重复Don Kirkby的回答,但我还没有代表添加评论.

使用Horizo​​ntalLineAnnotation可以设置ClipToChartArea,它将限制线的范围到图表内,以解决您提到的问题.

ChartArea area = ...;

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

假设您的y轴以0..1的比例保持值,则可以使用该线将该线附加到Y轴line.AxisY = area.AxisY,这将导致其位置被解释为轴值,然后设置line.Y = 0.8;为在80%位置附加.

  • 看起来你最后也需要这个:chart1.Annotations.Add(line); (2认同)

def*_*ale 4

您可以添加StripLine

使用StripWidth属性设置行位置:

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
                                           });
Run Code Online (Sandbox Code Playgroud)

更新:此答案的先前版本使用Interval而不是StripWidth. 正如 @dthor在评论中正确指出的那样,设置Interval将绘制一条重复的带状线。在上面的示例中,Interval默认设置为 0。