我可能会问错误的问题,但我需要的是在我的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
答案 0 :(得分:8)
抱歉重复Don Kirkby的回答,但我还没有代表添加评论。
使用HorizontalLineAnnotation,您可以将ClipToChartArea设置为限制图表中线条的范围,以解决您提到的问题。
ChartArea area = ...;
var line = new HorizontalLineAnnotation();
line.IsInfinitive = true; // make the line infinite
line.ClipToChartArea = area.Name;
line.LineDashStyle = ChartDashStyle.Dash;
假设您的y轴以0..1的比例保持值,那么您可以使用line.AxisY = area.AxisY
将线附加到Y轴,这会导致其位置被解释为轴值,然后设置line.Y = 0.8;
附加在80%的位置。
答案 1 :(得分: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
});
更新:此答案的上一版本使用Interval
代替StripWidth
。作为@dthor correctly pointed out in the comments设置Interval
将绘制重复的带状线。在上面的示例中,默认情况下Interval
设置为0。
答案 2 :(得分:2)
我从未使用过图表,但HorizontalLineAnnotation听起来很有希望。
答案 3 :(得分:0)
您可以使用一个循环向帧添加点,该循环具有例如900循环的1到9个值。对于每个循环,编译器将计算该值并为该周长留下一个点,为下一个循环留下另一个点,因此它看起来像一个等式的行:)