C# .NET의 차트에 대해 몇 가지 질문이 있습니다. 현재 직렬 포트에서 데이터를 실시간으로 표시하는 응용 프로그램에서 작업하고 있습니다.C# .NET의 차트에 대한 약간의 의문
저는 .NET 도구 상자의 간단한 차트를 사용하여 스플라인 시리즈를 사용하고 있으며 달성하고자하는 두 가지 주요 기능이 있습니다.
첫 번째 질문 - 차트의 오른쪽 부분에 표시되는 데이터 값을 표시하고 싶습니다. 새 데이터가 오면 왼쪽으로 이동하고 싶습니다. 어떻게 해야할지 모르겠습니다. 제대로 설명해주세요. 아직 이미지를 게시 할 수 없기 때문에 주요 아이디어를 얻을 수 있기를 바랍니다.
차트를 새로 고칠 때마다 모든 데이터 포인트를 다시로드하여 이러한 유형의 동작을 달성했습니다. 처음에는 모두 비 었으며 데이터가 오면 결국에는 더 큰 값의 큐를 넣었습니다.
chartAccelerationX.Series["XSeries"].Points.Clear();
dataPointTable = dataPointQueue.ToArray();
for (int i = 0; i < 1000; i++)
{
DataPoint dataPointX = new DataPoint();
if (1000 - dataPointTable.Length < i)
{
dataPointX.SetValueXY(i + 1, dataPointTable[i - 1000 + dataPointTable.Length].x);
}
else
{
dataPointX.IsEmpty = true;
}
chartAccelerationX.Series["XSeries"].Points.Add(dataPointX);
}
chartAccelerationX.Update();
그것은 꽤 잘 작동하지만, 내가 말했듯이, 나는 모든 1000 데이터 포인트마다 내가 차트를 업데이트를 만드는거야 (내가 수행
코드가 그렇게 할 수 있다는 것을 명확히하기 위해 100ms마다) 성능면에서 비참 할 것입니다 (총 6 ~ 8 개의 차트가 필요합니다). 정확한 데이터 수 (여기서는 1000)로 제한됩니다.데이터 포인트의 양이 늘어남에 따라 동적으로 그리고 내가 원했던 두 번째 기능 (예 : 한 번에 50 개의 레코드 만 표시하는 자동 맞춤 스크롤 막대)을 구현하는 더 쉬운 방법은 없을까요?
나는 스크롤바도 사용하고 있었지만 1000 개의 레코드 중 50 개의 레코드를 표시하도록 설정되어 있었고 지금은이 모든 빈 데이터 요소를 스크롤 할 수있었습니다. 정확한 데이터 포인트 수가 차트에 표시되고 데이터가 추가 될 때마다 스크롤 바를 표시하도록 설정할 수는 있지만 어쩌면 더 쉬운 방법일까요?
나는 당신이 내가 말하려고했던 것을 이해했으면 좋겠다. 나는 여전히 내 영어로 작업하고있다. 당신이 WPF를 사용할 수있는 경우
당신이 정말로 필요하십니까 전에 꽤 고속 데이터 샘플링을 사용했습니다 그래프를 초당 10 번 업데이트 하시겠습니까? 1 초에 한 번 또는 더 오래 놓아야 할 수도 있습니다. –
글쎄, 나는 부드럽게 보이게하고 싶었다. 초당 50 데이터 포인트가있을 것이므로 실시간으로보기 좋을 것이다. 필요하다면 나는 그 시간을 길게 만들 수 있지만 어쨌든 나는 할 수있다. 그와 같은 것을 성취 할 수있는 더 좋은 방법이 없는지 알고 싶습니다. –
많은 데이터 요소가있을 때 .Net 차트를 빨리 만들면서 많은 성공을 거두지 못했습니다. –