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

히포차트 4.3 - 주식차트 X축 틱(눈금) 날짜 라벨 바꾸기







날짜형 축을 만들 경우 X 축 특정 라벨의 이름을 수정하는 방법을 알아봅니다. Axistick 객체를 통해 기본 라벨링을 교체하는 형식의 코드입니다.

풀 소스로 연습하시기 바랍니다.




눈금(AxisTick) - ExtraTick(추가 눈금) 설정 방법  눈금을 이미지로 설정하기  눈금을 원하는 글자로 교체하기  히포차트 4.3 - 주식차트 X축 틱(눈금) 날짜 라벨 바꾸기  [팁] 히포차트 4.3 로그스케일(Log Scale) 차트 샘플  


C#
 
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Hippo;
using Hippo.WindowsForm4;

namespace WindowsApplication1
{
public partial class Form1 : Form
{
SeriesList sList;

SeriesItem[] items;

// 총 데이터 수
int totalCount = 1000;

// 차트 한 화면에 보여줄 개수
int counts = 100;

public Form1()
{
InitializeComponent();



Init();
}

private void Form1_Load_1(object sender, EventArgs e)
{


}

private void Init()
{
sList = new SeriesList();

sList.SeriesCollection.Add(new Series());

items = new SeriesItem[totalCount];

Random R = new Random();

for(int i = 1; i < totalCount + 1; i++)
{
SeriesItem item = new SeriesItem();

item.XDateTimeValue = DateTime.Parse("2013-01-01").AddDays(i);

item.YStartValue = R.Next(1000, 1050) * i - 11 * i; // 시가
item.LowValue = R.Next(1000, 1050) * i - 12 * i; // 저가
item.YValue = R.Next(1000, 1050) * i - 15 * i; // 종가
item.HighValue = R.Next(1000, 1050) * i - 10 * i; // 고가

if (i > 950 && i < 990)
{
item.YStartValue = R.Next(950, 1000) * i - 33 * i; // 시가
item.LowValue = R.Next(950, 1000) * i - 22 * i; // 저가
item.YValue = R.Next(950, 1000) * i - 30 * i; // 종가
item.HighValue = R.Next(950, 1000) * i - 14 * i; // 고가
}

if (i > 200 && i < 600)
{
item.YStartValue = R.Next(1100, 1200) * i - 40 * i; // 시가
item.LowValue = R.Next(1100, 1200) * i - 60 * i; // 저가
item.YValue = R.Next(1100, 1200) * i - 30 * i; // 종가
item.HighValue = R.Next(1100, 1200) * i - 10 * i; // 고가
}

items.SetValue(item, i - 1);
}

for(int i = totalCount - 1; i > totalCount - 1 - counts; i--)
{
sList.SeriesCollection[0].items.Add(items[i]);
}

sList.ChartType = ChartType.CandleStick;
sList.AxisFactor.YAxis.Direction = AxisDirection.Right;
sList.AxisFactor.XAxis.DataType = AxisDataType.DateTime;
sList.AxisFactor.XAxis.DateTimeLabelType = DateTimeLabelType.Day;
//sList.AxisFactor.XAxis.DateTimeFormat = "dd";

sList.GraphArea.Grid.IsBackGridColor = false;
sList.AxisFactor.YAxis.AxisMagin = 50;

sList.AxisFactor.YAxis.IsZeroStartScale = false;


sList.AxisFactor.XAxis.Interval = counts / 5;



AxisTick tk2 = new AxisTick("8월 20일");
tk2.Label.Text = "8월 20일 09:00";
tk2.Label.ForeColor = Color.Blue;
tk2.Label.Font = new Font("굴림", 12, FontStyle.Bold);
tk2.IsShowGridLine = true;


sList.AxisFactor.XAxis.Ticks.Add(tk2);


this.hHippoChart1.Designer.InnerBackColor = Color.FromArgb(214, 226, 239);
this.hHippoChart1.LegendBox.Visible = false;
this.hHippoChart1.SeriesListDictionary.Add(sList);
this.hHippoChart1.DrawChart();


this.hHippoChart1.DrawChart();
}
}
}


VB
 

Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Text
Imports System.Windows.Forms
Imports Hippo
Imports Hippo.WindowsForm4

Namespace WindowsApplication1
Public Partial Class Form1
Inherits Form
Private sList As SeriesList

Private items As SeriesItem()

` 총 데이터 수
Private totalCount As Integer = 1000

` 차트 한 화면에 보여줄 개수
Private counts As Integer = 100

Public Sub New()
InitializeComponent()



Init()
End Sub

Private Sub Form1_Load_1(sender As Object, e As EventArgs)


End Sub

Private Sub Init()
sList = New SeriesList()

sList.SeriesCollection.Add(New Series())

items = New SeriesItem(totalCount - 1) {}

Dim R As New. Random()

For i As Integer = 1 To totalCount
Dim item As New. SeriesItem()

item.XDateTimeValue = DateTime.Parse("2013-01-01").AddDays(i)

item.YStartValue = R.[Next](1000, 1050) * i - 11 * i
` 시가
item.LowValue = R.[Next](1000, 1050) * i - 12 * i
` 저가
item.YValue = R.[Next](1000, 1050) * i - 15 * i
` 종가
item.HighValue = R.[Next](1000, 1050) * i - 10 * i
` 고가
If i > 950 AndAlso i < 990 Then
item.YStartValue = R.[Next](950, 1000) * i - 33 * i
` 시가
item.LowValue = R.[Next](950, 1000) * i - 22 * i
` 저가
item.YValue = R.[Next](950, 1000) * i - 30 * i
` 종가
` 고가
item.HighValue = R.[Next](950, 1000) * i - 14 * i
End If

If i > 200 AndAlso i < 600 Then
item.YStartValue = R.[Next](1100, 1200) * i - 40 * i
` 시가
item.LowValue = R.[Next](1100, 1200) * i - 60 * i
` 저가
item.YValue = R.[Next](1100, 1200) * i - 30 * i
` 종가
` 고가
item.HighValue = R.[Next](1100, 1200) * i - 10 * i
End If

items.SetValue(item, i - 1)
Next

For i As Integer = totalCount - 1 To totalCount - 1 - counts + 1 Step -1
sList.SeriesCollection(0).items.Add(items(i))
Next

sList.ChartType = ChartType.CandleStick
sList.AxisFactor.YAxis.Direction = AxisDirection.Right
sList.AxisFactor.XAxis.DataType = AxisDataType.DateTime
sList.AxisFactor.XAxis.DateTimeLabelType = DateTimeLabelType.Day
`sList.AxisFactor.XAxis.DateTimeFormat = "dd";

sList.GraphArea.Grid.IsBackGridColor = False
sList.AxisFactor.YAxis.AxisMagin = 50

sList.AxisFactor.YAxis.IsZeroStartScale = False


sList.AxisFactor.XAxis.Interval = counts / 5



Dim tk2 As New. AxisTick("8월 20일")
tk2.Label.Text = "8월 20일 09:00"
tk2.Label.ForeColor = Color.Blue
tk2.Label.Font = New Font("굴림", 12, FontStyle.Bold)
tk2.IsShowGridLine = True


sList.AxisFactor.XAxis.Ticks.Add(tk2)


Me.hHippoChart1.Designer.InnerBackColor = Color.FromArgb(214, 226, 239)
Me.hHippoChart1.LegendBox.Visible = False
Me.hHippoChart1.SeriesListDictionary.Add(sList)
Me.hHippoChart1.DrawChart()


Me.hHippoChart1.DrawChart()
End Sub
End Class
End Namespace



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

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

helpdesk@hippochart.com





Copyright © 2009-2018 투데이트레이딩. Inc.  All Rights Reserved.