C# DevExpress LineChart 사용에 대한 예제입니다.
아래와 같은 형태의 Chart로 표시되게 됩니다.
Series의 ViewType를 Line으로 설정해주면 됩니다.
[기본 소스코드]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 |
private void SetLineChartData(ChartControl chart, ViewType viewType, DataTable dt)
{
Dictionary<string, Series> seriesList = new Dictionary<string, Series>();
foreach (DataRow row in dt.Rows)
{
string product = row["PRODUCT"].ToString();
string year = row["YEAR"].ToString();
int qty = (int)row["QTY"];
Series series;
if (seriesList.TryGetValue(product, out series) == false)
{
seriesList.Add(product, series = new Series(product, viewType));
//Label 표시
series.LabelsVisibility = DevExpress.Utils.DefaultBoolean.True;
chart.Series.Add(series);
}
//SeriesPoint 생성
SeriesPoint point = new SeriesPoint(year, qty);
series.Points.Add(point);
}
//ChartTitle 생성
ChartTitle title = new ChartTitle();
title.Text = viewType.ToString();
chart.Titles.Add(title);
} |
=============================================================
[Line Style 변경]
Line의 Style을 변경하는 부분입니다. 아래는 DashDot 형태로 변경한 예제입니다.
LineSeriesView의 LineStyle.DashStyle 속성을 변경시켜 주면 됩니다.
아래 소스의 22번째 Line (빨간색으로 표시) 부분처럼 변경시켜 주면 됩니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 |
private void SetLineChartData(ChartControl chart, DataTable dt)
{
ViewType viewType = ViewType.Line;
Dictionary<string, Series> seriesList = new Dictionary<string, Series>();
foreach (DataRow row in dt.Rows)
{
string product = row["PRODUCT"].ToString();
string year = row["YEAR"].ToString();
int qty = (int)row["QTY"];
Series series;
if (seriesList.TryGetValue(product, out series) == false)
{
seriesList.Add(product, series = new Series(product, viewType));
//Label 표시
series.LabelsVisibility = DevExpress.Utils.DefaultBoolean.True;
//LineStyle 변경
(series.View as LineSeriesView).LineStyle.DashStyle = DashStyle.DashDot;
chart.Series.Add(series);
}
//SeriesPoint 생성
SeriesPoint point = new SeriesPoint(year, qty);
series.Points.Add(point);
}
//ChartTitle 생성
ChartTitle title = new ChartTitle();
title.Text = viewType.ToString();
chart.Titles.Add(title);
} |
=============================================================
[ArgumentScaleTyle 변경]
[To-Be] 그림의 빨간색 테두리 친 부분처럼 변경시키는 방법입니다.(As-Is 그림과 비교해보세요~)
Series.ArgumentScaleType을 설정하지 않으면 입력되는 값에 따라
내부적으로 자동으로 변경시켜 주는데,
ScaleType.Qualitative로 지정하면 입력한 값으로 표시할 수 있습니다.
1
2
3 |
Series.ArgumentScaleType = ScaleType.Qualitative; |
[To-Be]
[As-Is]
=============================================================
[Point 표시방법]
아래 그림처럼 Line에 Point를 표시하는 방법입니다.
LineSeriesView의 MarkerVisibility 값을 DevExpress.Utils.DefaultBoolean.True로 설정하면 됩니다.
아래 소스에서 빨간색으로 표시한 부분을 참조 바랍니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 |
private void SetLineChartData(ChartControl chart, DataTable dt)
{
ViewType viewType = ViewType.Line;
Dictionary<string, Series> seriesList = new Dictionary<string, Series>();
foreach (DataRow row in dt.Rows)
{
string product = row["PRODUCT"].ToString();
string year = row["YEAR"].ToString();
int qty = (int)row["QTY"];
Series series;
if (seriesList.TryGetValue(product, out series) == false)
{
seriesList.Add(product, series = new Series(product, viewType));
//Label 표시
series.LabelsVisibility = DevExpress.Utils.DefaultBoolean.True;
//LineStyle 변경
(series.View as LineSeriesView).LineStyle.DashStyle = DashStyle.DashDot;
//Line에 Point 표시
(series.View as LineSeriesView).MarkerVisibility = DevExpress.Utils.DefaultBoolean.True;
//Argument Sclae Type 변경
series.ArgumentScaleType = ScaleType.Qualitative;
chart.Series.Add(series);
}
//SeriesPoint 생성
SeriesPoint point = new SeriesPoint(year, qty);
series.Points.Add(point);
}
//ChartTitle 생성
ChartTitle title = new ChartTitle();
title.Text = viewType.ToString();
chart.Titles.Add(title);
} |
=============================================================
※ 참고
- BarChart 관련 : http://shanael.tistory.com/16
'C# > DevExpress' 카테고리의 다른 글
[C# DevExpress]DockManager, DocumentManager (0) | 2018.04.10 |
---|---|
[C# DevExpress] ChartControl - BubbleChart (0) | 2018.04.09 |
[C# DevExpress] ChartControl - PieChart (0) | 2018.04.09 |
[C# DevExpress] ChartControl - Bar Chart (0) | 2018.04.06 |
[C# DevExpress] SpreadSheet에 값 넣기 (0) | 2018.03.28 |
댓글