2. styles

3
Overview

스타일 기본 설정법

series를 정의하는 변수와 같은 구조로 styles.series 에 설정

  • 메인과 서브로 구분되는 차트를 표현하고자 할경우 X축 데이터 KEY NAME은 동일해야 한다.
    다를 경우 동일한 차트로 보기 어려우므로 두개의 차트를 생성해야함. 
styles_seriesMidnighttruejs
var styles = {
	메인KEY: {
		series: { 
			메인시리즈KEY: { /* ... */ }
		}
	},
	서브KEY: {
		series: {
			서브시리즈KEY: { /* ... */ }
		}
	}
};
var series = {
	메인KEY: {
		메인시리즈KEY: {series: 사용할 시리즈 종류, xaxis: X축 데이터 KEY NAME, yaxis: Y축 데이터 KEY NAME}
	},
	서브KEY: {
		서브시리즈KEY: {series: 사용할 시리즈 종류, xaxis: X축 데이터 KEY NAME, yaxis: Y축 데이터 KEY NAME}
	}
};
AreaSeriesMidnighttruejs
<!DOCTYPE html>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
	<title>CHART01</title>
	<script type="text/javascript" src="../../../svg/comm/jquery-1.9.1.min.js"></script>
	<script type="text/javascript" src="../../../svg/comm/raphael.js"></script>
	<script type="text/javascript" src="../../../svg/comm/webponent.comm.common.js"></script>
	<script type="text/javascript" src="../../../svg/chart/webponent.chart.js"></script>
	<style type="text/css">
		.chart01 {width: 100%; height: 400px;}
	</style>
	<script type="text/javascript">
	window.onload = function(){
		var options = {
            data: {
                data: [
                    { Date: '20140101', Mprc: 10000 },
                    { Date: '20140102', Mprc: 20000 },
                    { Date: '20140103', Mprc: 15000 },
                    { Date: '20140104', Mprc: 30000 },
                    { Date: '20140105', Mprc: 5000 }
                ]
            },
            format: {
                xAxis: function(_str){
                    return _str.substr(0, 4)+'/'+_str.substr(4,2)+'/'+_str.substr(6,2);
                }
            },
            use: {
                animate: true,
                aCrossLine: true
            }
        };
        var styles = {
            main: {
                graph: {
                    color: '#fafafa'
                },
                yAxis: {
                    text: {
                        align: 'right'
                    }
                },
                series: {
                    s1: {
						line: {
							normal: {
                             color: 'blue', width: 2, opacity: 0.5,
								over: {
                              		color: 'blue', width: 2, opacity: 1
								}
							}
						}
					}
                }
            }
        };
        var series = {
            "main": {
                "s1": {series: 'line', xaxis: 'Date', yaxis: 'Mprc'}
            }
        };
        var chart = webponent.chart.init($('.chart01'), options, styles, series);
	};
	</script>
</head>
<body>
	<div class="chart01"></div>
</body>
</html>

Demo

DEFAULT

Configuration Styles

Default StylesMidnighttruejs
var defaultStyles = {
	layout: { // SVG 전체에 대한 스타일
		paddingTop: 10, 	// 상단 padding
		paddingRight: 10,  	// 우측 padding
		paddingBottom: 10, 	// 하단 padding
		paddingLeft: 10,	// 좌측 padding
		color: '#fff',		// SVG 배경 색상
		line: {	color: '', width: 0  } // SVG 테두리 색상과 두께
	},
	graph: { // 차트시리즈가 그려지는 배경 스타일
		color: '#fff', 		// 차트시리즈가 그려지는 배경 색상
		paddingTop: 0, 		// 상단 padding
		paddingRight: 10, 	// 우측 padding
		paddingBottom: 0, 	// 하단 padding
		paddingLeft: 10,	// 좌측 padding
		line: { // 차트시리즈가 그려지는 배경의 테두리
			top: { color: '#ddd', width: 1, opacity: 1 }, // 테두리 중 상단 색상, 두께, 투명도(0~1)
			left: { color: '#ddd', width: 1, opacity: 1 },	// 테두리 중 우측 색상, 두께, 투명도(0~1)
			right: { color: '#ddd', width: 1, opacity: 1 }, // 테두리 중 하단 색상, 두께, 투명도(0~1)
			bottom: { color: '#ddd', width: 1, opacity: 1 } // 테두리 중 좌측 색상, 두께, 투명도(0~1)
		}
	},
	yAxis: { // Y축 스타일
		width: 60, // label width
		position: 'left', // Y축 위치(left || right)
		paddgLeft: 10, // label의 좌측 padding
		paddingRight: 10, // label의 우측 padding
		baseAtZero: false,	// true이면 Y축은 0부터 시작
		maxNumber: null, // Y축의 최대값 고정
		minNumber: null, // Y축의 최소값 고정
		fit: false, // Y축 값의 소수점 포함 여부
		useValue: { // 맨 저값과 고값의 텍스트 출력 여부
			min: false, 
			max: false
		},
		text: { // Y축 텍스트 스타일
			family: 'dotum', 	// 글꼴 종류
			size: 11, 		 	// 글꼴 크기
			color: '#aaa', 		// 글꼴 색상
			align: 'left', 		// 텍스트 정렬(left || right || center)
			style: 'normal', 	// 글꼴 모양( bold || Italic )
			opacity: 1			// 글꼴 투명도
		},
		line: { // Y축 GRID LINE 스타일
			color: '#eee', 	// 선 색상
			width: 1, 		// 선 두께(0 ~)
			opacity: 1		// 선 투명도(0~1)
		}
	},
	xAxis: { // X축 스타일
		height: 20, // label height
		paddingTop: 10, // label의 상단 padding
		betweenLabels: false, // 텍스트와 텍스트 사이에 GridLine을 위치시키고 싶을 경우 true
		gap: 10, // 텍스트와 텍스트 사이의 간격
		baseAtStart: false,	// 시리즈가 그려지는 영역에 여백없이 그려지고 싶을 때 true
		useValue: {  // 맨 마지막 텍스트 출력 여부
			last: false 
		},
		text: { // X축 텍스트 스타일
			family: 'dotum', 	// 글꼴 종류
			size: 11, 			// 글꼴 크기
			color: '#aaa', 		// 글꼴 색상
			align: 'center', 	// 텍스트 정렬(left || right || center)
			style: 'normal', 	// 글꼴 모양(normal || bold || Italic )
			opacity: 1			// 글꼴 투명도
		},
		line: { // X축 GRID LINE 스타일
			color: '#eee', 	// 선 색상
			width: 1, 		// 선 두께(0 ~)
			opacity: 1		// 선 투명도(0~1)
		}
	},
	crossLine: { // 마우스를 따라다니는 선 스타일
		color: '#999', 	// 선 색상
		width: 1, 		// 선 두께
		opacity: 1, 	// 선 투명도
		style: ' ' 		// 선 모양 ["", "-", ".", "-.", "-..", ". ", "- ", "--", "- .", "--.", "--.."]
	},
	tip: { // 툴팁 스타일
		className: null,	// 툴팁에 매칭시킬 class명이 있는 경우 입력
		// className이 없을 경우 하단의 스타일이 적용 됨.
		color: '#fff', 		// 툴팁 배경
		paddingTop: 5, 		// 상단 padding
		paddingBottom: 5, 	// 하단 padding
		paddingLeft: 5, 	// 좌측 padding
		paddingRight: 5,	// 우측 padding
		line: {				// 툴팁 테두리 색상, 두께, 선 종류(solid, dotted...css의 border 속성)
			color: '#000', width: 1, style: 'solid'
		},
		text: {				// 툴팁 글꼴 색상, 종류, 모양(normal || bold || Italic), 크기
			color: '#000', family: 'dotum', style: 'normal',  size: 12
		}
	}
};

layout

SVG 전체 영역 스타일

layout.paddingTop = 10;

SVG 전체 영역의 상단 여백

Parameters

valuenumber0 부터

layout.paddingRight = 10;

SVG 전체 영역의 우측 여백

Parameters

valuenumber0 부터

layout.paddingBottom = 10;

SVG 전체 영역의 하단 여백

Parameters

valuenumber0 부터

layout.paddingLeft = 10;

SVG 전체 영역의 좌측 여백

Parameters

valuenumber0 부터

layout.color = '#ffffff';

SVG 전체 영역의 배경 색상

Parameters

valuestring영문 컬러명, RGB 값

layout.opacity = 1;

SVG 전체 영역의 배경 투명도

Parameters

valuenumber0부터 1까지의 소수점 값

layout.line.color = '';

SVG 전체 영역의 테두리 색상 (default는 표현되지 않게 '' 처리)

Parameters

valuestring영문 컬러명, RGB 값

layout.line.width = 0;

SVG 전체 영역의 테두리 두께 (default는 표현되지 않게 0 처리)

Parameters

valuenumber선의 두께 0 ~

Usage

layoutMidnighttruejs
var styles = {
	layout: {
		paddingTop: 10,
		paddingRight: 10,
		paddingBottom: 10,
		paddingLeft: 10,
		color: 'white',
		line: {
			color: '#afafaf',
			widht: '1'
		}
	},
	series: {
		s1: {}
	}
}

Demo

Layout 예시

graph

SERIES가 그려지는 영역 스타일

graph.paddingTop = 10;

Series가 그려지는 영역의 상단 여백

Parameters

valuenumber0 부터

graph.paddingRight = 10;

Series가 그려지는 영역의 우측 여백

Parameters

valuenumber0 부터

graph.paddingBottom = 10;

Series가 그려지는 영역의 하단 여백

Parameters

valuenumber0 부터

graph.paddingLeft = 10;

Series가 그려지는 영역의 좌측 여백

Parameters

valuenumber0 부터

graph.color = '#ffffff';

Series가 그려지는 영역의 배경 색상

Parameters

valuestring영문 컬러명, RGB 값

graph.opacity = 1;

Series가 그려지는 영역의 배경 투명도

Parameters

valuenumber0부터 1까지의 소수점 값

graph.line = {};

Series가 그려지는 영역의 테두리 설정(상, 하, 좌, 우 각각 따로 지정)

  • graph.line.top = { color: '#ddd', width: 1, opacity: 1 }
  • graph.line.left = { color: '#ddd', width: 1, opacity: 1 }
  • graph.line.right = { color: '#ddd', width: 1, opacity: 1 }
  • graph.line.bottom = { color: '#ddd', width: 1, opacity: 1 }

Parameters 

    defaulttype설명
graph










line










top


color'#ddd'string상단 선 색상( 영문 색상명 또는 RGB값 )
width1number상단 선 두께 (0 ~ )
opacity1number상단 선 투명도 (0 ~ 1)
left


color'#ddd'string좌측 선 색상( 영문 색상명 또는 RGB값 )
width1number좌측 선 두께 (0 ~ )
opacity1number좌측 선 투명도 (0 ~ 1)
right


color'#ddd'string우측 선 색상( 영문 색상명 또는 RGB값 )
width1number우측 선 두께 (0 ~ )
over1number우측 선 투명도 (0 ~ 1)
bottomcolor'#ddd'string하단 선 색상( 영문 색상명 또는 RGB값 )
width1number하단 선 두께 (0 ~ )
opacity1number하단 선 투명도 (0 ~ 1)

Usage

graphMidnighttruejs
var styles = {
	graph: {
		paddingTop: 0,
		paddingRight: 10,
		paddingBottom: 0,
		paddingLeft: 10,
		color: 'white',
		line: {
			top: {color: '#ddd', width: 1, opacity: 1},
			left: {color: '#ddd', width: 1, opacity: 1},
			right: {color: '#ddd', width: 1, opacity: 1},
			bottom: {color: '#ddd', width: 1, opacity: 1}
		}
	},
	series: {
		s1: {}
	}
}

Demo

Graph 예시

yAxis

Y축 스타일

yAxis.width = 60;

Y축 label의 넓이

Parameters

valuenumber0 부터

yAxis.position = 'left';

Y축 label의 위치(Series가 그려지는 영역을 기준으로 좌, 우)

Parameters

valuestringleft, right

yAxis.paddingLeft = 10;

Y축 label 영역의 좌측 여백

Parameters

valuenumber0 부터

yAxis.paddingRight = 10;

Y축 label 영역의 우측 여백

Parameters

valuenumber0 부터

yAxis.baseAtZero = false;

false 인 경우 Y축은 최소값을 기준으로 표현되며,

true 인 경우 Y축은 0을 기준으로 한다.

Parameters

valuebooleanfalse , true

yAxis.minNumber = null;

Y축의 최소값을 지정하고 싶을때 숫자값을 입력한다.

Parameters

valuenumbernull 혹은 숫자

yAxis.maxNumber = null;

Y축의 최대값을 지정하고 싶을때 숫자값을 입력한다.

Parameters

valuenumbernull 혹은 숫자

yAxis.fit = false;

Y축의 Interval을 소수점 단위까지 보여주고 싶을때 사용한다. false 이면 1단위(Default)로 interval 된다.

options의 format.yAxis와는 다른 것으로 주로 Y축의 최대값과 최소값의 차이가 0보다 크고 5 미만이고 Y축 inverval의 간격을 여과없이 보여주고자 할때 사용한다.

Parameters

valueBooleanfalse , true

yAxis.useValue = {};

Y축에서 제일 처음값과 제일 마지막값은 출력되지 않는다. true 로 변경시 출력됨.

  • yAxis.useValue.min = false;
  • yAxis.useValue.max = false;

Parameters

   defaulttype설명
yAxis

useValue

minfalseboolean제일 처음 값 출력 여부
maxfalseboolean제일 마지막 값 출력 여부

yAxis.text = {};

Y축 글꼴 스타일 설정

  • yAxis.text.family = 'dotum';
  • yAxis.text.size = 12;
  • yAxis.text.color = '#aaa';
  • yAxis.text.align = 'left';
  • yAxis.text.style = 'normal';
  • yAxis.text.opacity = 1;

Parameters 

   defaulttype설명
yAxis










text










family'dotum'string글꼴 종류 이름(영문명)
size12number글꼴 크기(px 단위)
color'#aaa'string글꼴 색상(영문 색상명 혹은 RGB값)
align'left'stringlabel width 내에서의 텍스트 위치['left', 'right', 'center']
style'normal'string글꼴 모양['normal', 'bold', 'italic']
opacity1number글꼴 투명도 (0~1)

yAxis.line = {};

Y축 텍스트와 같은 위치로 Series를 그리는 영역을 지나는 Horizontal Grid Line 스타일 설정

  • yAxis.line.color = '#eee';
  • yAxis.line.width = 1;
  • yAxis.line.opacity = 1;

Parameters 

   defaulttype설명
yAxisline


color'#eee'string선 색상 (영문컬러명이나 RGB값 입력)
width1number선 두께 (0 ~ )
opacity1number선 투명도 (0~1)

Usage

yAxisMidnighttruejs
var styles = {
	yAxis: {
		width: 60,
		position: 'left',
		paddingRight: 10,
		paddingLeft: 10,
		baseAtZero: false,
		useValue: { min: false, min: false },
		text: {
			family: 'dotum',
			size: 11,
			color: '#aaa',
			align: 'left',
			style: 'normal',
			opacity: 1
		},
		line: {
			color: '#eee', width: 1, opacity: 1
		}
	},
	series: {
		s1: {}
	}
}

Demo

yAxis 예시

xAxis

X축 스타일

xAxis.height = 30;

X축 label의 높이

Parameters

valuenumber0 부터

xAxis.betweenLabels = false;

X축 텍스트와 텍스트 사이에 Vertical Grid Line을 그려주고 싶을 경우 true

Parameters

valueboolean[ false, true ]

xAxis.paddingTop = 13;

X축 label 영역의 상단 여백

Parameters

valuenumber0 부터

xAxis.gap = 10;

X축 텍스트와 텍스트 사이의 간격

Parameters

valuenumber0 부터

xAxis.baseAtStart = false;

false 인 경우 Series 및 X축 텍스트는 각 넓이의 중간에서 부터 시작하며

true 인 경우 Series 및 X축 텍스트는 Series가 그려지는 영역의 여백없이 그려진다.

Parameters

valuebooleanfalse , true

xAxis.useValue = {};

X축에서 출력되는 텍스트 관련

  • xAxis.useValue.first = true;
    제일 첫번째값은 출력된다. false 로 변경시 출력되지 않음.
  • xAxis.useValue.last = false;
    제일 마지막값은 출력되지 않는다. true 로 변경시 출력됨.
  • xAxis.useValue.all = false;
    텍스트 전부 출력
    겹쳐지는 부분은 전 텍스트보다 밑으로 출력되나, 두단계까지만 지원된다.

Parameters

   defaulttype설명
xAxisuseValueallfalsebooleanX축 텍스트 전부 출력(겹쳐지는 경우 전 텍스트보다 밑으로 출력됨)
firsttrueboolean제일 첫번째 값 출력 여부
lastfalseboolean제일 마지막 값 출력 여부

xAxis.text = {};

X축 글꼴 스타일 설정

  • xAxis.text.family = 'dotum';
  • xAxis.text.size = 12;
  • xAxis.text.color = '#aaa';
  • xAxis.text.align = 'left';
  • xAxis.text.style = 'normal';
  • xAxis.text.opacity = 1;

Parameters 

   defaulttype설명
xAxis










text










family'dotum'string글꼴 종류 이름(영문명)
size12number글꼴 크기(px 단위)
color'#aaa'string글꼴 색상(영문 색상명 혹은 RGB값)
align'left'stringlabel width 내에서의 텍스트 위치['left', 'right', 'center']
style'normal'string글꼴 모양['normal', 'bold', 'italic']
opacity1number글꼴 투명도 (0~1)

xAxis.line = {};

X축 텍스트와 같은 위치로 Series를 그리는 영역을 지나는 Vertical Grid Line 스타일 설정

  • xAxis.line.color = '#eee';
  • xAxis.line.width = 1;
  • xAxis.line.opacity = 1;

Parameters 

   defaulttype설명
xAxis


line


color'#eee'string선 색상 (영문컬러명이나 RGB값 입력)
width1number선 두께 (0 ~ )
opacity1number선 투명도 (0~1)

Usage

xAxisMidnighttruejs
var styles = {
	xAxis: {
		height: 20,
		betweenLabels: false,
		gap: 10,
		paddingTop: 10,
		baseAtStart: false,
		useValue: { last: false },
		text: {
			family: 'dotum',
			size: 11,
			color: '#aaa',
			align: 'left',
			style: 'normal',
			opacity: 1
		},
		line: {
			color: '#eee', width: 1, opacity: 1
		}
	},
	series: {
		s1: {}
	}
}

Demo

xAxis 예시

crossLine

마우스를 따라다니는 선 설정

crossLine.color = '#999';

선 색상

Parameters

valuestring영문컬러명이나 RGB값

crossLine.width = 1;

선 두께

Parameters

valuenumber0 부터

crossLine.opacity = 1;

선 투명도

Parameters

valuenumber0 부터

crossLine.style =  ' ';

선 투명도

Parameters

valuestring[“ ”, “-”, “.”, “-.”, “-..”, “. ”, “- ”, “--”, “- .”, “--.”, “--..”]

Usage

crossLineMidnighttruejs
var styles = {
	crossLine: {
		color: '#999',
		width: 1,
		opacity: 1,
		style: '-.'
	},
	series: {
		s1: {}
	}
}

Demo

CrossLine 예시

tip

툴팁 설정(툴팁은 DIV로 생성됨)

tip.className = null;

외부 css의 클래스를 적용시키고 싶을 경우 className 적용

className이 null 이 아닌경우 tip의 다른 스타일 설정은 모두 무시한다.

Parameters

valuestringcss className

tip.color = '#fff';

툴팁 배경 색상

Parameters

valuestring영문컬러명이나 RGB값

tip.paddingTop = 5;

툴팁 배경 상단과 텍스트 사이의 여백

Parameters

valuenumber0 부터

tip.paddingBottom = 5;

툴팁 배경 하단과 텍스트 사이의 여백

Parameters

valuenumber0 부터

tip.paddingLeft = 5;

툴팁 배경 좌측과 텍스트 사이의 여백

Parameters

valuenumber0 부터

tip.paddingRight = 5;

툴팁 배경 좌측과 텍스트 사이의 여백

Parameters

valuenumber0 부터

tip.text = {};

툴팁 글꼴 스타일 설정

  • tip.text.family = 'dotum';
  • tip.text.size = 11;
  • tip.text.color = '#000';
  • tip.text.style = 'normal';

Parameters 

   defaulttype설명
tip



text




family'dotum'string글꼴 종류 이름(영문명)
size11number글꼴 크기(px 단위)
color'#000'string글꼴 색상(영문 색상명 혹은 RGB값)
style'normal'string글꼴 모양['normal', 'bold', 'italic']

tip.line = {};

툴팁 border Style

  • tip.line.color = '#000';
  • tip.line.width = 1;
  • tip.line.style = 'solid';

Parameters 

   defaulttype설명
tip


line


color'#000'string선 색상 (영문컬러명이나 RGB값 입력)
width1number선 두께 (0 ~ )
style'solid'string
선 종류(solid, dotted...css의 border-style 속성)

Usage

tipMidnighttruejs
var styles = {
	tip: {
		className: null,
		color: '#fff',
		paddingTop: 5,
		paddingBottom: 5,
		paddingLeft: 5,
		paddingRight: 5,
		line: {
			color: '#000',
			width: 1,
			style: 'solid'
		},
		text: {
			color: '#000',
			family: 'dotum',
			style: 'normal',
			size: 12
		}
	},
	series: {
		s1: {}
	}
}

Demo

Tip 예시