C# Chart (Line) 실시간 반영
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;
using System.Windows.Threading;
namespace charttest
{
public partial class Form1 : Form
{
int[] CPU = new int[10];
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
Random rand = new Random();
chart1.Series[0].Points.AddXY(1, rand.Next(100));
double axisMinimum = this.chart1.Series[0].Points[0].XValue;
this.chart1.ChartAreas[0].AxisX.Minimum = axisMinimum;
this.chart1.ChartAreas[0].AxisX.Maximum = axisMinimum + 19;
this.chart1.ChartAreas[0].AxisY.Minimum = 0;
this.chart1.ChartAreas[0].AxisY.Maximum = 100;
DispatcherTimer t = new DispatcherTimer();
t.Interval = TimeSpan.FromMilliseconds(500);
t.Tick += new EventHandler(timer_Tick);
t.Start();
}
private void timer_Tick(object sender, EventArgs e)
{
Random rand = new Random();
Series series = chart1.Series[0];
series.Points.AddXY(series.Points[series.Points.Count-1].XValue+1, rand.Next(100));
while (this.chart1.Series[0].Points.Count > 10)
{
series.Points.RemoveAt(0);
}
double axisMinimum = this.chart1.Series[0].Points[0].XValue;
this.chart1.ChartAreas[0].AxisX.Minimum = axisMinimum;
this.chart1.ChartAreas[0].AxisX.Maximum = axisMinimum + 9;
this.chart1.ChartAreas[0].AxisY.Minimum = 0;
this.chart1.ChartAreas[0].AxisY.Maximum = 100;
}
}
}