我在C#编码,我有3个变量,每隔1000毫秒通过我的计时器更新。 我想使用这个计时器来创建一个FastLine图表,显示每1000毫秒绘制一个新点。 我在一定程度上有这个工作。 它正在绘制计时器所做的每个滴答,但它只是不断添加它我只希望它显示前20个图,而不是过去的2000如果程序运行那么久。
我的timer1_Tick方法中的图表代码如下:
try
{
chart1.Series[0].Points.AddXY(xaxis++, CPUTemperatureSensor.Value);
chart1.Series[1].Points.AddXY(xaxis, NvdGPUTemperatureSensor.Value);
chart1.Series[2].Points.AddXY(xaxis, ramusedpt);
}
catch
{
}
xaxis以前被声明为int,不需要显示所有代码,因为rest是无关紧要的
答案 0 :(得分:1)
下面的代码是由用户jstreet发布的用于解决问题的内容 链接到线程和他的评论: How to move x-axis grids on chart whenever a data is added on the chart
public partial class Form1 : Form
{
Timer timer;
Random random;
int xaxis;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
random = new Random();
timer = new Timer();
timer.Interval = 1000;
timer.Tick += timer_Tick;
timer.Start();
}
void timer_Tick(object sender, EventArgs e)
{
chart1.Series[0].Points.AddXY(xaxis++, random.Next(1, 7));
if (chart1.Series[0].Points.Count > 10)
{
chart1.Series[0].Points.Remove(chart1.Series[0].Points[0]);
chart1.ChartAreas[0].AxisX.Minimum = chart1.Series[0].Points[0].XValue;
chart1.ChartAreas[0].AxisX.Maximum = xaxis;
}
}