C# Chart 简单使用教程

Chart控件可以用来绘制波形图、柱状图、饼图、折线图等,用来进行数据表现是很不错的,现在简单说一下这个控件的使用方法,对C# Chart使用相关知识感兴趣的朋友一起看看吧

Chart控件可以用来绘制波形图、柱状图、饼图、折线图等,用来进行数据表现是很不错的,现在简单说一下这个控件的使用方法

XAML:

    

C# behind code:

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using System.Windows.Forms; using System.Windows.Forms.DataVisualization.Charting; using System.Data; // https://www.cnblogs.com/stackmiao/p/11463284.html // 参考 namespace WpfApp2 { ///  /// MainWindow.xaml 的交互逻辑 ///  public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); Constructor(); SetChartArea(); SetSeries(); SetTitle(); SetLegend(); SetStripLine(); } private ChartArea m_ChartArea; private Series m_Series; private Series m_Series_2; private Legend m_Legend; private Title m_Title; private Random m_Random = new Random((int)DateTime.Now.Ticks); private Timer m_Timer = new Timer() { Interval = 500, Enabled = false }; private void Constructor() { // Chart 控件可以包含多个 ChartArea // ChartArea 里可以含多条 Series m_ChartArea = new ChartArea(); m_Series = new Series("曲线1"); m_Series_2 = new Series("曲线2"); m_Legend = new Legend("No.1"); m_Title = new System.Windows.Forms.DataVisualization.Charting.Title( "保压值", System.Windows.Forms.DataVisualization.Charting.Docking.Top, new System.Drawing.Font("宋体", 16F), System.Drawing.Color.Black); chartTest.ChartAreas.Add(m_ChartArea); chartTest.Series.Add(m_Series); chartTest.Legends.Add(m_Legend); chartTest.Titles.Add(m_Title); m_Timer.Tick += M_Timer_Tick; m_Timer.Tick += M_Timer_Tick_2; } private void M_Timer_Tick(object sender, EventArgs e) { int yVal = m_Random.Next(32, 70); if (m_Series.Points.Count <20) { m_Series.Points[m_Series.Points.Count - 1].Label = " "; m_Series.Points.Add(yVal); m_Series.Points[m_Series.Points.Count - 1].Label = yVal.ToString() + "N"; return; } m_Series.Points.RemoveAt(0); m_Series.Points[m_Series.Points.Count - 1].Label = " "; m_Series.Points.Add(yVal); m_Series.Points[m_Series.Points.Count - 1].Label = yVal.ToString() + "N"; } private void M_Timer_Tick_2(object sender, EventArgs e) { int yVal = m_Random.Next(32, 70); if (m_Series_2.Points.Count <20) { m_Series_2.Points[m_Series_2.Points.Count - 1].Label = " "; m_Series_2.Points.Add(yVal); m_Series_2.Points[m_Series_2.Points.Count - 1].Label = yVal.ToString() + "N"; return; } m_Series_2.Points.RemoveAt(0); m_Series_2.Points[m_Series_2.Points.Count - 1].Label = " "; m_Series_2.Points.Add(yVal); m_Series_2.Points[m_Series_2.Points.Count - 1].Label = yVal.ToString() + "N"; } private void SetChartArea() { m_ChartArea.Name = "TestChartArea"; m_ChartArea.AxisX.Minimum = 1; m_ChartArea.AxisX.Maximum = 23; m_ChartArea.AxisY.Minimum = 0d; m_ChartArea.AxisY.Maximum = 80d; m_ChartArea.AxisX.IsStartedFromZero = true; // X 轴起点从0开始 没摸索出来有啥用 m_ChartArea.AxisX.IntervalOffset = 0; m_ChartArea.AxisX.Interval = 2; m_ChartArea.AxisX.IsMarginVisible = false; m_ChartArea.AxisX.MajorGrid.Enabled = true; //X轴上网格 m_ChartArea.AxisY.MajorGrid.Enabled = true; //Y轴上网格 m_ChartArea.AxisX.Title = "X轴"; m_ChartArea.AxisY.Title = "Y轴"; m_ChartArea.AxisX.TitleAlignment = System.Drawing.StringAlignment.Far; m_ChartArea.AxisY.TitleAlignment = System.Drawing.StringAlignment.Far; } private void SetSeries() { m_Series.ChartArea = "TestChartArea"; m_Series.ChartType = SeriesChartType.Spline; m_Series.Color = System.Drawing.Color.Blue; m_Series.BorderWidth = 1; m_Series.MarkerColor = System.Drawing.Color.Green; m_Series.MarkerSize = 5; m_Series.MarkerStyle = MarkerStyle.Circle; m_Series.Legend = "No.1"; m_Series.LegendText = "保压压力"; //series.Points.AddXY(0, 1); m_Series.Points.AddXY("0", 0); // 这样跟X标签一起添加 m_Series.Points.AddXY("1", 10); m_Series.Points.AddXY("2", 35); m_Series.Points.AddXY("3", 32); m_Series.Points.AddXY("4", 79); m_Series.Points.AddXY("5", 40); m_Series.Points.AddXY("6", 67); m_Series.Points.AddXY("7", 77); m_Series.Points.AddXY("8", 48); // Label 显示最后添加的一个数据 Y 值 m_Series.IsValueShownAsLabel = true; m_Series.Label = "#LABEL"; for (int i = 0; i 

参考:

https://www.cnblogs.com/stackmiao/p/11463284.html

https://www.cnblogs.com/ljhandsomeblog/p/11239859.html

https://www.cnblogs.com/Betty-IT/p/9198557.html

https://zhuanlan.zhihu.com/p/337334836 // c# 在已经画好的chart上画一条线

到此这篇关于C# Chart 简单使用的文章就介绍到这了,更多相关C# Chart使用内容请搜索0133技术站以前的文章或继续浏览下面的相关文章希望大家以后多多支持0133技术站!

以上就是C# Chart 简单使用教程的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » 其他教程