[]
FlexChart의 itemFormatter 속성을 사용하면 차트 항목이 렌더링될 때 호출되는 콜백 함수를 지정할 수 있습니다. 콜백은 차트 엔진의 속성과 메서드를 사용하여 항목을 사용자 정의하거나 새 항목을 추가할 수 있습니다. 이렇게 하면 차트 항목(예: 데이터 포인트)을 조건부로 포맷할 수 있습니다.
함수는 세 개의 매개변수를 사용합니다:
다음 itemFormatter 예시는 0보다 작은 모든 데이터 포인트에 다른 채우기 색상을 적용합니다.
import * as wjChart from '@grapecity/wijmo.chart';
// create the chart
let myChart = new wjChart.FlexChart('#myChart', {
itemFormatter: (engine, hitTestInfo, defaultRenderer) => {
var ht = hitTestInfo;
if (ht.y < 0) {
engine.stroke = 'red';
engine.fill = 'rgba(255,0,0,0.7)';
}
defaultRenderer();
}
});
__itemFormatter__는 기존 차트 요소의 모양을 수정하는 것 외에도 사용될 수 있습니다. 렌더 엔진을 호출하여 차트에 추가 사용자 정의 요소를 그릴 수 있습니다.
이 예시에서는 이전 데이터 포인트를 현재 데이터 포인트와 비교하고 상승 또는 하락 추세를 나타내는 선을 그립니다.
itemFormatter: function (engine, hitTestInfo, defaultRenderer) {
var ht = hitTestInfo,
binding = 'downloads';
// check that this is the right series/element
if (ht.series.binding == binding && ht.pointIndex > 0 &&
ht.chartElement == wijmo.chart.ChartElement.SeriesSymbol) {
// get current and previous values
var chart = ht.series.chart,
items = chart.collectionView.items,
valNow = items[ht.pointIndex][binding],
valPrev = items[ht.pointIndex - 1][binding];
// add line if value is increasing
if (valNow > valPrev) {
var pt1 = chart.dataToPoint(ht.pointIndex, valNow),
pt2 = chart.dataToPoint(ht.pointIndex - 1, valPrev);
engine.drawLine(pt1.x, pt1.y, pt2.x, pt2.y, null, {
stroke: 'gold',
strokeWidth: 6
});
}
}
// render element as usual
defaultRenderer();
}