Home 소개       다운로드       온라인 설명서      주식/코인 차트    Q & A     Blog    

히포차트 4.3 - 실시간 차트 기본 샘플 (기초 이론)







히포차트로 실시간 차트를 그리는 기본 이론을 소개합니다.

보통 RealtimeChart()를 이용할 수 있지만 아래와 같은 기본 개념을 이해하시면 더욱 활용성이 높아집니다.

주석과 함께 샘플 코드를 실행해보시기 바랍니다.




멀티 시리즈 실시간 차트  히포차트 실시간 차트에 대한 고찰(?)  CPU 사용률 차트 - 실시간 차트  실시간 차트를 그리는 다른 방법 (Tip)  [기본] 실시간 차트 그리기 (히포차트 4.2 이상)  히포차트 4.3 - 실시간 차트 기본 샘플 (기초 이론)  


C#
 
SeriesList sList = new SeriesList();

// 차트에 한번에 그려질 데이터 개수 결정
double[] dataList = new double[20];

public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
this.timer1.Interval = 1000;

// 차트로 그릴 데이터셋 초기화
for(int i = 0; i < dataList.Length; i++ )
{
dataList[i] = double.NaN;
}

// 각종 차트 설정 초기화
sList.ChartType = ChartType.Line;
sList.AxisFactor.BackColor = Color.Khaki;

Series sr = new Series();
sr.Line.LineWidth = 2;
sr.Points.Width = 3;

// 시리즈아이템 생성 및 이름 결정
for(int i = 0; i < dataList.Length; i++)
{
SeriesItem item = new SeriesItem();
item.Name = "item" + i.ToString();

sr.items.Add(item);
}

sList.SeriesCollection.Add(sr);

hHippoChart1.SeriesListDictionary.Add(sList);

this.timer1.Start();
}

private void Draw(double addData)
{
// 기존 데이터 Shift
for(int i = 0; i < dataList.Length; i++)
{
if (i > 1)
{
dataList[i - 1] = dataList[i];
}
}

// 마지막 인덱스에 현재 생성한 데이터 입력
dataList[dataList.Length - 1] = addData;

// 데이터셋을 시리즈아이템에 입력
for(int i = 0; i < dataList.Length; i++)
{
sList.SeriesCollection[0].items[i].YValue = dataList[i];
}

// 그리기
hHippoChart1.DrawChart();
}

private void timer1_Tick(object sender, EventArgs e)
{
// 실시간 데이터 받아오기
Random r = new Random();
Draw(r.Next(99));
}


VB
 

Private sList As New. SeriesList()

` 차트에 한번에 그려질 데이터 개수 결정
Private dataList As Double() = New Double(19) {}

Public Sub New()
InitializeComponent()
End Sub

Private Sub Form1_Load(sender As Object, e As EventArgs)
Me.timer1.Interval = 1000

` 차트로 그릴 데이터셋 초기화
For i As Integer = 0 To dataList.Length - 1
dataList(i) = Double.NaN
Next

` 각종 차트 설정 초기화
sList.ChartType = ChartType.Line
sList.AxisFactor.BackColor = Color.Khaki

Dim sr As New. Series()
sr.Line.LineWidth = 2
sr.Points.Width = 3

` 시리즈아이템 생성 및 이름 결정
For i As Integer = 0 To dataList.Length - 1
Dim item As New. SeriesItem()
item.Name = "item" + i.ToString()

sr.items.Add(item)
Next

sList.SeriesCollection.Add(sr)

hHippoChart1.SeriesListDictionary.Add(sList)

Me.timer1.Start()
End Sub

Private Sub Draw(addData As Double)
` 기존 데이터 Shift
For i As Integer = 0 To dataList.Length - 1
If i > 1 Then
dataList(i - 1) = dataList(i)
End If
Next

` 마지막 인덱스에 현재 생성한 데이터 입력
dataList(dataList.Length - 1) = addData

` 데이터셋을 시리즈아이템에 입력
For i As Integer = 0 To dataList.Length - 1
sList.SeriesCollection(0).items(i).YValue = dataList(i)
Next

` 그리기
hHippoChart1.DrawChart()
End Sub

Private Sub timer1_Tick(sender As Object, e As EventArgs)
` 실시간 데이터 받아오기
Dim r As New. Random()
Draw(r.[Next](99))
End Sub



※ 히포차트 샘플 코드는 버전별로 상이한 결과를 나타낼 수 있습니다.

이 코드 관련 문의 사항은 페이스북 리플을 달아주시거나 아래 이메일로 이 페이지 주소와 함께 문의주세요.

helpdesk@hippochart.com





Copyright © 2009-2018 HippoChart. Inc.  All Rights Reserved.