我画线图形上从一个文本文件中读取数字。 有在其上对应于X坐标,而Y坐标是它是在该行上文件的每一行的数。
现在的需求发生了变化,包括“特殊事件”,其中如果后跟字就行了一些特殊的尖峰会出现像下面的图片:
目前我能找到的唯一方法是使用每穗行,但有可能是一个大的这些特殊事件的,因此必须是模块化的。 这似乎是一个有效的和坏的方式来编程。
是否有可能尖峰添加到同一张图上线? 或者是有可能只使用一个额外的线,并打破它(不可见),并只显示其中尖峰意味着待观察?
我已经看过用柱状图但由于在图表上我不能等物品。
该DataPoints
一的Line
Chart
连接 ,所以它不是possble真正打破它拆开。 然而每段导致DataPoint
都可以有自己的色彩和包含Color.Transparent
它适合于一个简单的技巧..
无需添加额外的Series
或Annotations
,您的两个问题是可以解决这样的:
这里有两个例子方法:
void addSpike(Series s, int index, double spikeWidth)
{
DataPoint dp = s.Points[index];
DataPoint dp1 = new DataPoint(dp.XValue + spikeWidth, dp.YValues[0]);
s.Points.Insert(index+1, dp1);
s.Points.Insert(index+2, dp);
}
void addLine(Series s, int index, double spikeDist, double spikeWidth)
{
DataPoint dp = s.Points[index];
DataPoint dp1 = new DataPoint(dp.XValue + spikeDist, dp.YValues[0]);
DataPoint dp2 = new DataPoint(dp.XValue + spikeWidth, dp.YValues[0]);
DataPoint dp0 = dp.Clone();
dp1.Color = Color.Transparent;
dp2.Color = dp.Color;
dp2.BorderWidth = 2; // optional
dp0.Color = Color.Transparent;
s.Points.Insert(index + 1, dp1);
s.Points.Insert(index + 2, dp2);
s.Points.Insert(index + 3, dp0);
}
你可以称他们是这样的:
addSpike(chart1.Series[0], 3, 50d);
addLine(chart1.Series[0], 6, 30d, 80d);
需要注意的是他们增加2首或3个数据点的点集合!
当然,你可以设置颜色和多余的线条宽度(又名边框宽度)如你所愿,也包括他们在PARAMS列表..
如果你想保持点集合不变你也可以简单地创建一个“尖峰系列”,并添加峰值点在那里。 关键是要“跳”到新的点用透明线!