๐Ÿ’ป๐Ÿ’€/๊ฐœ๋ฐœ

highcharts์˜ y-axis label์— ์ฒœ ๋‹จ์œ„ ์ฝค๋งˆ ์ถ”๊ฐ€ํ•˜๊ธฐ(in React)

db2 2022. 1. 5. 14:42

Y์ถ•์— ์ฝค๋งˆ๊ฐ€ ์—†์„ ๋•Œ

์˜ต์…˜ ๋…ธ๊ฐ€๋‹ค๋ฅผ ํ†ตํ•ด ์ด์˜๊ฒŒ ๋ฉ€ํ‹ฐ ์ฐจํŠธ๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค. ์งœ์ž”โœจ

์ด์ œ ์ฐจํŠธ ์˜ต์…˜์€ ๊ทธ๋งŒ ๊ฑด๋“œ๋ฆฌ๊ณ  ์‹ถ์€๋ฐ ์ž๊พธ๋งŒ ๋‚ด ๋ฐœ๋ชฉ์„ ์žก๋Š” Y์ถ•์˜ ๋ฌ˜ํ•˜๊ฒŒ ํœ‘~ํ•œ ๋Š๋‚Œ. ๋ฐ์ดํ„ฐ ๋ผ๋ฒจ์—๋„ ํˆดํŒ์—๋„(์Šคํฌ๋ฆฐ์ƒท์—๋Š” ๋ณด์ด์ง€ ์•Š์ง€๋งŒ) ๋™์ผํ•˜๊ฒŒ 3์ž๋ฆฌ ์ฝค๋งˆ๋ฅผ ์ฐ์–ด์คฌ๋Š”๋ฐ Y์ถ•์—๋งŒ ์—†์œผ๋‹ˆ, ์ผ๊ด€์„ฑ์ด ๋–จ์–ด์ง€๋ฉด์„œ ์ž๊พธ๋งŒ ์‹ ๊ฒฝ์ด ์“ฐ์ด๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค. ์–ด์ฉŒ๋ฉด ์ฐจํŠธ์˜ ๋ผ๋ฒจ์—๋Š” ์ฝค๋งˆ๋ฅผ ์ฐ์–ด์ฃผ์ง€ ์•Š๋Š” ๊ฒŒ ๊ตญ๋ฃฐ์ผ์ง€๋„ ๋ชจ๋ฅธ๋‹ค๋Š” ํ•ฉ๋ฆฌํ™”๋ฅผ ํ•˜๋ฉด์„œ ๋ฉฐ์น ์„ ๊ณ ๋ฏผํ–ˆ๋Š”๋ฐ... ๊ฒฐ๊ตญ์€ ๋ฐ”๊พธ๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค!

language ์˜ต์…˜ ์„ค์ •ํ•˜๊ธฐ

์งง์€ ์˜์–ด๋กœ ๊ตฌ๊ธ€๋ง์„ ํ•ด๋ณด๋ฉด ์—ญ์‹œ๋‚˜, ์Šคํƒ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ์— ์ด๋ฏธ ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ๋“ค์ด ๊ณ ๋ฏผํ•˜๋˜ ํ”์ ์ด ๋‚จ์•„์žˆ๋‹ค. ๋‚˜๋Š” ์ด๋ฒˆ์— ์„ธ๋ถ€ ์˜ต์…˜์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” Highcharts.chart() ๋ฉ”์†Œ๋“œ์™€ ๊ธ€๋กœ๋ฒŒ ์˜ต์…˜์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” Highcarts.setOptions() ๋ฉ”์†Œ๋“œ๊ฐ€ ๊ตฌ๋ถ„๋œ๋‹ค๋Š” ๊ฑธ ์ฒ˜์Œ ์•Œ์•˜๋‹ค.

Highcharts.setOptions({
  lang: {
    thousandsSep: ','
  }
});  

๋ฆฌ์•กํŠธ์—์„œ ์ ์šฉํ•˜๊ธฐ

๋ฆฌ์•กํŠธ์—์„œ๋„ ๋ฐฉ๋ฒ•์€ ๋™์ผํ•˜๋‹ค. HighchartsReact ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ Œ๋”๋งํ•˜๊ธฐ ์ „์— setOptions() ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ๋œ๋‹ค. ๋‹จ, ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ํƒ€๊ฒŸ์ด HighchartsReact๊ฐ€ ์•„๋‹ˆ๋ผ Highcharts์ž„์„ ์œ ์˜ํ•˜์ž.

import React from 'react';
import Highcharts from 'highcharts';
import HighchartsReact from 'highcharts-react-official';

Highcharts.setOptions({
  lang: {
    thousandsSep: ',',
  },
});

const ChartComponent = () => {
  return (<HighchartsReact highcharts={Highcharts} />);
}

yAxis.labels.format ์˜ต์…˜ ์ถ”๊ฐ€ํ•˜๊ธฐ

language ์„ค์ •๋งŒ ํ•œ๋‹ค๊ณ  ํ•ด์„œ ๊ณง๋ฐ”๋กœ ํฌ๋งทํŒ…์ด ์ ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค. ํฌ๋งท์ด ํ•„์š”ํ•œ ๋ผ๋ฒจ์— format ์˜ต์…˜์„ ๋ณ„๋„๋กœ ์ง€์ •ํ•ด์ค˜์•ผ ํ•œ๋‹ค. ์Šคํƒ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ์— ์ด ๋ถ€๋ถ„์ด ์ƒ๋žต๋˜์–ด ์žˆ์–ด์„œ ๋‚˜๋Š” ํ•œ์ฐธ ์‚ฝ์งˆ์„ ํ–ˆ๋‹ค.

yAxis.labels.format ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ๋‹จ์œ„๋ฅผ ๋ถ™์ผ ์ˆ˜๋„ ์žˆ๊ณ , ์›ํ•˜๋Š” ๋‚ ์งœ ํฌ๋งท์œผ๋กœ ์ง€์ •ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. Format String์„ ์ฐธ๊ณ ํ•˜๋ฉด, ์ฝค๋งˆ๋ฅผ ์ฐ๊ธฐ ์œ„ํ•ด์„  ,.0f ํฌ๋งท์„ ์‚ฌ์šฉํ•ด์•ผ ํ•จ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

yAxis: {
  labels: {
    format: '{value:,.0f}'
  }
},

๊ณต์‹ ๋ฌธ์„œ์— ๋”ฐ๋ฅด๋ฉด Number ํƒ€์ž…์˜ ํฌ๋งท์— ์˜จ์ (.)๊ณผ ์ฝค๋งˆ(,)๋ฅผ ๊ฐ๊ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ language setting์— ๋”ฐ๋ผ ๋ Œ๋”๋ง์ด ๊ฒฐ์ •๋œ๋‹ค๊ณ  ํ•œ๋‹ค. ์‹ค์ œ๋กœ language ์„ค์ • ์—†์ด ํฌ๋งท ์˜ต์…˜๋งŒ ์„ค์ •ํ•˜๋ฉด ์ฝค๋งˆ ๋Œ€์‹  ๊ณต๋ฐฑ ํ•œ ์นธ์ด ๋ Œ๋”๋œ๋‹ค.

Y์ถ•์— ์ฝค๋งˆ๊ฐ€ ์žˆ์„ ๋•Œ

ํŽธ-์•ˆํ•ด์กŒ๋‹ค.