地板网站建设,深圳十大公司,网站开发的技术意义,株洲建设局网站官网资料#xff1a;Chart 类 (System.Windows.Forms.DataVisualization.Charting) | Microsoft Learn
类的 Chart 两个重要属性是 Series 和 ChartAreas 属性#xff0c;这两个属性都是集合属性。 Series集合属性存储Series对象#xff0c;这些对象用于存储要显示的数据以…官网资料Chart 类 (System.Windows.Forms.DataVisualization.Charting) | Microsoft Learn
类的 Chart 两个重要属性是 Series 和 ChartAreas 属性这两个属性都是集合属性。 Series集合属性存储Series对象这些对象用于存储要显示的数据以及该数据的属性。 ChartAreas集合属性存储ChartArea对象这些对象主要用于使用一组轴绘制一个或多个图表。
图标中集合的作用
主要包含Annotations获取并设置存储图标注释的集合、ChartAreas获取用于存储 ChartAreaCollection 对象的只读 ChartArea 对象、Legends获取或设置LegendCollection 其存储所有用于 Legend 控件的 Chart 对象、Series显示数据获取一个 SeriesCollection 对象该对象包含 Series 对象、Titles
遇到的bug
将数据绑定在chart数据源上更改DataCount就更改了数据源。
int DataCount 0
chart1.Series[0].Points.DataBindY(DataPanel[DataCount]);
给chart控件添加滚动条
private void ChartScrollbarStyle(){ chartAmend.ChartAreas[0].AxisX.ScrollBar.Enabled true;chartAmend.ChartAreas[0].AxisX.ScaleView.Position 1;chartAmend.ChartAreas[0].AxisX.ScaleView.Size 300;chartAmend.ChartAreas[0].AxisX.ScrollBar.ButtonStyle ScrollBarButtonStyles.SmallScroll;chartAmend.ChartAreas[0].AxisX.ScrollBar.ButtonColor Color.Silver;chartAmend.ChartAreas[0].AxisX.ScrollBar.LineColor Color.Black;chartAmend.ChartAreas[0].AxisX.ScrollBar.IsPositionedInside false;
}
X轴显示为时间 设置数据类型为Time 数据添加时X是时间
string time DateTime.Now.ToString(HH:mm:ss:fff); // 获取时间yyyy-MM-dd HH:mm:ss:ffff
chart1.Series[x].Points.AddXY(time, data.Y); // 添加显示数据
界面中显示添加数据y值 在添加数的函数值中设置显示属性为true
chart1.Series[0].IsValueShownAsLabel true;
绘制直线用于指引最大值最小值等
// 如果interval不设置为0则y轴间隔这个数值会有一条线设置为0后则只有offset的一条线
ChartArea chartArea chart.ChartAreas[0];
StripLine stripLine new StripLine();
stripLine.Interval 0; // 例如你想在Y50的位置画线
stripLine.IntervalOffset 11;
stripLine.StripWidth 0.15; // 设置宽度为很小的值以模拟直线
stripLine.Text name;
stripLine.BackColor Color.Red; // 设置线的颜色
chartArea.AxisY.StripLines.Add(stripLine);
应用完整代码
/// summary
/// 添加显示最大值、最小值、平均值
/// /summary
/// param namechart/param
/// param nameseries/param
/// param nameshowMax/param
/// param nameshowMin/param
/// param nameshowAverage/param
void SetupChartStripLine(Chart chart, Series series, bool showMax true, bool showMin true, bool showAverage true)
{if (chart null || series null)return;double maxValue series.Points.FindMaxByValue().YValues[0];double minValue series.Points.FindMinByValue().YValues[0];double sum 0;foreach (var point in series.Points){sum point.YValues[0];}double averageValue sum / series.Points.Count;// 定义一个 Actionstring 委托它引用了一个接受字符串参数的方法 Actionstring, double myAction (name, value) {ChartArea chartArea chart.ChartAreas[0];StripLine stripLine new StripLine();stripLine.Interval 0; // 例如你想在Y50的位置画线 stripLine.IntervalOffset value;stripLine.StripWidth 0.08; // 设置宽度为很小的值以模拟直线 stripLine.BackColor Color.Red; // 设置线的颜色stripLine.Text name;chartArea.AxisY.StripLines.Add(stripLine);};// 调用传入的 Actionstring 委托并传入一个字符串参数 if (showMax)myAction?.Invoke(最大值 maxValue, maxValue); // 使用?.是为了避免在action为null时引发异常if (showMin)myAction?.Invoke(最小值 minValue, minValue);if (showAverage)myAction?.Invoke(平均值 averageValue, averageValue);
}
运行效果