수식에서 다음과 같이 ScatterSparkline 함수를 사용하여 분산형 스파크라인을 만들 수 있습니다. =SCATTERSPARKLINE(points1, points2?, minX?, maxX?, minY?, maxY?, hLine?, vLine?, xMinZone?, xMaxZone?, yMinZone?, yMaxZone?, tags?, drawSymbol?, drawLines?, color1?, color2?, dash?).
이 함수에는 다음과 같은 매개 변수가 있습니다.
points1: 첫 번째 x,y 데이터 계열입니다. 이는 "H1:I3"과 같은 범위입니다. 행 수가 열 수보다 크거나 같으면 처음 두 열에서 데이터를 가져옵니다. 첫 번째 열은 x 값을 포함하고 두 번째 열은 y 값을 포함합니다. 그렇지 않으면 처음 두 행에서 데이터를 가져옵니다. 첫 번째 행은 x 값을 포함하고 두 번째 행은 y 값을 포함합니다.
points2\: (선택 사항) 두 번째 x,y 데이터 계열입니다. 이는 "H4:I6"과 같은 범위입니다. 행 수가 열 수보다 크거나 같으면 처음 두 열에서 데이터를 가져옵니다. 첫 번째 열은 x 값을 포함하고 두 번째 열은 y 값을 포함합니다. 그렇지 않으면 처음 두 행에서 데이터를 가져옵니다. 첫 번째 행은 x 값을 포함하고 두 번째 행은 y 값을 포함합니다.
minX\: (선택 사항) 두 계열의 최소 x 한도입니다. 각 계열은 생략되면 고유한 값을 가집니다.
maxX\: (선택 사항) 두 계열의 최대 x 한도입니다. 각 계열은 생략되면 고유한 값을 가집니다.
minY\: (선택 사항) 두 계열의 최소 y 한도입니다. 각 계열은 생략되면 고유한 값을 가집니다.
maxY\: (선택 사항) 두 계열의 최대 y 한도입니다. 각 계열은 생략되면 고유한 값을 가집니다.
hLine\: (선택 사항) 가로 축의 위치입니다. 생략하면 선이 없습니다.
vLine\: (선택 사항) 세로 축의 위치입니다. 생략하면 선이 없습니다.
xMinZone\: (선택 사항) 회색 영역의 x 최소값입니다. 이 4개의 구역 매개 변수 중 하나라도 생략되면 회색 영역이 없습니다.
xMaxZone\: (선택 사항) 회색 영역의 x 최대값입니다. 이 4개의 구역 매개 변수 중 하나라도 생략되면 회색 영역이 없습니다.
yMinZone\: (선택 사항) 회색 영역의 y 최소값입니다. 이 4개의 구역 매개 변수 중 하나라도 생략되면 회색 영역이 없습니다.
yMaxZone\: (선택 사항) 회색 영역의 y 최대값입니다. 이 4개의 구역 매개 변수 중 하나라도 생략되면 회색 영역이 없습니다.
tags\: (선택 사항) true이면, y 값이 첫 번째 계열의 최대값인 위치에 점을 "#0000FF"로 표시하고, y 값이 첫 번째 계열의 최소값인 위치에 점을 "#CB0000"으로 표시합니다. 기본값은 false입니다.
drawSymbol\: (선택 사항) true이면 각 점을 기호로 그립니다. 첫 번째 계열의 기호는 원이고 두 번째 계열의 기호는 정사각형입니다. 기본값은 true입니다.
drawLines\: (선택 사항) true이면 각 점을 순서대로 각 계열의 선과 연결합니다. 기본값은 false입니다.
color1\: (선택 사항) 첫 번째 점 계열의 색 문자열입니다. 기본값은 "#969696"입니다.
color2\: (선택 사항) 두 번째 점 계열의 색 문자열입니다. 기본값은 "#CB0000"입니다.
dash\: (선택 사항) true이면 선은 파선입니다. 그렇지 않으면 선은 실선입니다. 기본값은 false입니다.
var spread;
window.onload = function () {
spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"));
initSpread(spread);
document.getElementById('color1').addEventListener('change',applyChanges);
document.getElementById('color2').addEventListener('change',applyChanges);
};
function applyChanges() {
var sheet = spread.getActiveSheet();
sheet.setFormula(2, 4, '=SCATTERSPARKLINE(A3:B11,C3:D11,,,,,AVERAGE(B3:B11),AVERAGE(A3:A11),,,,,'
+'TRUE,TRUE,TRUE,"'+
document.getElementById('color1').value + '","' +
document.getElementById('color2').value + '",TRUE)');
}
function initSpread(spread) {
var spreadNS = GC.Spread.Sheets;
var sheet = spread.sheets[0];
sheet.suspendPaint();
sheet.addSpan(0, 0, 1, 5);
sheet.getCell(0, 0).value("Rainfall effect on Particulate Levels and Temperature").font("15px Arial")
.backColor("#BBBBBB")
.vAlign(spreadNS.VerticalAlign.center);
sheet.setArray(1, 0, [
["Daily Rainfall", "Particulate Level", "Daily Rainfall1", "Temperature", "Diagram"],
[2.0, 100, 2.0, 15],
[2.5, 130, 2.5, 12],
[3.0, 120, 3.0, 11],
[3.5, 140, 3.5, 9],
[4.0, 120, 4.0, 10],
[4.5, 110, 4.5, 10],
[5.0, 110, 5.0, 9],
[5.5, 105, 5.5, 9],
[6.0, 100, 6.0, 8]
]);
sheet.addSpan(2, 4, 9, 1);
sheet.setFormula(2, 4, '=SCATTERSPARKLINE(A3:B11,C3:D11,,,,,AVERAGE(B3:B11),AVERAGE(A3:A11),,,,,'
+'TRUE,TRUE,TRUE,"#000000","#82BC00",TRUE)');
for (var i = 0; i < 11; i++) {
sheet.setRowHeight(i, 25);
}
sheet.getRange(1, 0, 1, 5)
.font("bold 13px Arial")
.setBorder(new spreadNS.LineBorder("black", spreadNS.LineStyle.thin), { bottom: true });
sheet.getRange(2,0,9,4).hAlign(spreadNS.HorizontalAlign.left);
sheet.setColumnWidth(0, 120);
sheet.setColumnWidth(1, 120);
sheet.setColumnWidth(3, 120);
sheet.setColumnWidth(4, 200);
//hide 2nd rainfall column data
sheet.setColumnVisible(2, false);
sheet.resumePaint();
};
<!doctype html>
<html style="height:100%;font-size:14px;">
<head>
<meta name="spreadjs culture" content="ko-kr"/>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" type="text/css" href="$DEMOROOT$/ko/purejs/node_modules/@mescius/spread-sheets/styles/gc.spread.sheets.excel2013white.css">
<script src="$DEMOROOT$/ko/purejs/node_modules/@mescius/spread-sheets/dist/gc.spread.sheets.all.min.js" type="text/javascript"></script>
<script src="$DEMOROOT$/ko/purejs/node_modules/@mescius/spread-sheets-resources-ko/dist/gc.spread.sheets.resources.ko.min.js" type="text/javascript"></script>
<script src="$DEMOROOT$/spread/source/js/license.js" type="text/javascript"></script>
<script src="app.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="styles.css">
</head>
<body>
<div class="sample-tutorial">
<div id="ss" class="sample-spreadsheets"></div>
<div class="options-container">
<div class="option-row">
<label for="color1">Rainfall - Particulate Level Graph Color</label>
</div>
<div class="option-row">
<select id="color1">
<option value="#FFFFFF">White</option>
<option value="#000000" selected>Black</option>
<option value="#F7A711">Orange</option>
<option value="#DDDDDD">LightGrey</option>
<option value="#BBBBBB">Grey</option>
<option value="#999999">DarkGrey</option>
<option value="#82BC00">Green</option>
</select>
</div>
<div class="option-row">
<label for="color2">Rainfall - Temperature Graph Color</label>
</div>
<div class="option-row">
<select id="color2">
<option value="#FFFFFF">White</option>
<option value="#000000">Black</option>
<option value="#F7A711">Orange</option>
<option value="#DDDDDD">LightGrey</option>
<option value="#BBBBBB">Grey</option>
<option value="#999999">DarkGrey</option>
<option value="#82BC00" selected>Green</option>
</select>
</div>
</div>
</div>
</body>
</html>
.sample-tutorial {
position: relative;
height: 100%;
overflow: hidden;
}
.sample-spreadsheets {
width: calc(100% - 280px);
height: 100%;
overflow: hidden;
float: left;
}
.options-container {
float: right;
width: 280px;
padding: 12px;
height: 100%;
box-sizing: border-box;
background: #fbfbfb;
overflow: auto;
}
.option-row {
font-size: 14px;
padding: 5px;
margin-top: 10px;
}
label {
margin-bottom: 6px;
}
input {
padding: 4px 6px;
}
body {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
}