๋ฐ์ํ
Intro
์๋ ํ์ธ์. ์์ ํฌ์คํ ์์ Multi type chart๋ฅผ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ดค๋๋ฐ์, ์ด๋ฒ ์๊ฐ์๋ Chart.js์์ Multi-Axis ๋ฅผ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. Multi-Axis ์ ๋ฐ์ดํฐ์ ๋จ์ ์ฐจ์ด๊ฐ ์ปค์ ํ๊บผ๋ฒ์ ํํํ ๋ ์ ์ฉํฉ๋๋ค.
How to do
์ ๊ฒฝ์ฐ series1, series2 ๋ ๋ฐ์ดํฐ์ ์์๋๋ y์ถ์ ์ค๋ฅธ์ชฝ๊ณผ ์ผ์ชฝ์ ํ์ํ๊ณ ์ถ์์ต๋๋ค.
๊ฐ๊ฐ ์ฌ์ฉํ๊ณ ์ ํ๋ ์ถ์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ yAxisID ์์ฑ์ ํ์ฉํ์ฌ a, b ๋๊ฐ๋ฅผ ์ง์ ํ์ต๋๋ค. ์ดํ options์์ ํด๋น yAxisID๋ฅผ ์ฌ์ฉํด position์ right, left๋ก ์ค์ ํด์คฌ์ต๋๋ค.
const series1: number[] = []
const series2: number[] = []
data.forEach(temp => {
// Insert data
})
const datasets: ChartDataset<'line' | 'bar', number[]>[] = [
{
type: 'line',
label: 'A',
yAxisID: 'y-axis-a',
borderColor: 'white',
borderWidth: 2,
fill: false,
pointRadius: 0,
data: series3
},
{
type: 'bar',
label: 'B',
yAxisID: 'y-axis-b',
backgroundColor: 'red',
data: series1
}
]
const options: ChartOptions<'line' | 'bar'> = {
plugins: {
...
},
scales: {
'y-axis-a': {
type: 'linear',
position: 'right',
grid: {
display: false
}
},
'y-axis-b': {
type: 'linear',
position: 'left',
grid: {
display: false
}
}
}
}
const chartData: ChartData<'line' | 'bar', number[], string> = {
labels,
datasets
}
๋ณ์๋ช ์ด๋ ์์น๋ ์ผ์ด์ค์ ๋ง๊ฒ ์ฌ์ฉํ์๋ฉด ๋ฉ๋๋ค :)
๋ฐ์ํ