๋ฒ์ ์ amchart5 ๋ก ์งํ ํ๋ค.
๋ง์ด ์ฐ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ ๋งํผ ๋ฏธ๋ฆฌ ์ ๋ฆฌ๋ฅผ ํด๋์ด์ ์ถํ์๋ ๊ฐ์๊ฑธ ๊ฒ์ํ๋ฉด์ ์๊ฐ๋ญ๋น๋ฅผ ํ์ง ์๋๋ก ํ๋์ฉ ๋์ฌ๋๋ง๋ค ์ ๋ฆฌ๋ฅผ ํด๋์ด์ผ ๊ฒ ๋ค.
1. axis์ x, y ์ปฌ๋ผ์ฌ์ด์ฆ ์กฐ์
๋ฐ์ดํฐ๋ 4๊ฐ์ธ๋ฐ, ํ๋ฉด์ฌ์ด์ฆ๊ฐ ์๋ค๋ณด๋ amchart์์ ์๋์ผ๋ก 2๊ฐ๋ง label ์ ํ์ํ๋ ํ์์ด ์์๋ค.
๊ทธ๋์ x์ ์ฌ์ด์ฆ๋ฅผ ์ค์ด๊ฑฐ๋ ํด์ฃผ๋ ์ต์ ์ด ์์๊บผ ๊ฐ์์ ์ด์ฌํ width๋ min, max ๋ฅผ ์ด์ฌํ ์ฐพ์๋ณด์๋๋ฐ,
์ ๋ต์ render๋ฅผ ํ ๋ ์ต์ grid distance ๊ฐ์ ์กฐ์ ํด์ฃผ๋ฉด ๋์๋ค~ ๐ฅ
x๋ฟ๋ง์๋๋ผ y์ ๊ฐ์ ์กฐ์ ํ๊ณ ์ถ์ผ๋ฉด ๋ง์ฐฌ๊ฐ์ง๋ก y์ ๋ฐ์ดํฐ๋ฅผ ๋ง๋ค๋ ๊ฐ์ ์ต์ ๊ฐ์ ๋ฃ์ด์ฃผ๋ฉด ๋๋ค~
let xAxis = chart.xAxes.push(
am5xy.CategoryAxis.new(root, {
renderer: am5xy.AxisRendererX.new(root, {
minGridDistance: 25, // <- 25๋ฉด 100/25 ์ ๊ฐ๋งํผ ๋ณด์ฌ์ค๋ค.(์ฆ, 25๋ฉด ์ด 4๊ฐ)
}),
categoryField: "name",
})
);
2. label์ ์ฌ์ด์ฆ์กฐ์ , ๋์ด ์กฐ์
์ฌ์ด์ฆ์ ๊ฒฝ์ฐ theme์ ๋ฐ๋ก ์ ์ฉ ์์ผฐ๋๋ฐ, theme์ ๋ฐ๋ก ์ ์ฉ ํ์ง ์๊ณ ๋ฐ๋ก ์ต์ ์ ์ ์ฉ ํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์๋์ง๋ ๋ชจ๋ฅด๊ฒ ๋ค. theme์ ์ ์ฉ์ํค๋ ค๋ฉด, ๋ถ๋ฌ์จ am5์์ Theme์ ๋ฐ๋ก ๋ถ๋ฌ์ ๋ณ์์ ์ ์ธํ๊ณ ๊ทธ์์์ ์กฐ์ ํ๊ณ ์ ํ๋ ๊ฐ์ set์ ํตํด ์ ์ฉ ์์ผ์ฃผ๋ฉด ๋๋ค.
(์ฐธ์กฐ: https://www.amcharts.com/docs/v5/concepts/themes/ )
let myTheme = am5.Theme.new(root); // theme ์ ์ธ
myTheme.rule("Label").set("fontSize", "0.8em"); // label ํฐํธ ํฌ๊ธฐ ์กฐ์
axis X์ label ์ด ๋๋ฌด ๋ถ์ด์์ด์ ์๋๋ก ์ข ๋๊ณ ์ถ์๋๋ฐ,
์ด๋๋ ๋ณ๋ theme์ ์ฉ ์์ด ๋ฐ๋ก labels์ ์ ๊ทผํ์ฌ setting์ ํด์ฃผ์๋ค.
xAxis.get("renderer").labels.template.setAll({
paddingTop: 20
});
์ด๋ ๊ฒ ํด์ ์ํ๋ ๋ชจ์์ ์ฐจํธ๋ฅผ ๋ง๋ค ์ ์์๋ค.
๋ฆฌ์กํธ์์ ์ฐจํธ๋ฅผ ์ ์ฉํ๋ ๋ถ๋ถ์ ๋ฐ๋ก ์ ๋ฆฌํด์ ๋์ค์ ํฌ์คํ ํด๋ณผ๊น ํ๋ค~
์ผ๋ถ ๋ด์ฉ์ ๋ ์ถ๊ฐ ํ๋ ค๊ณ ํ๋ค.
์ฐจํธ๋ฅผ ํด๋ฆญํ์๋ ๋์ํ๋ ๋ชจ์ ์ ์์ ๊ณ ์ ์ฐพ์๋ดค๋ค.
ref: https://www.amcharts.com/docs/v5/charts/percent-charts/pie-chart/pie-series/
Disabling pull-out ๋ถ๋ถ์ ๋ณด๋ฉด ๋๋๋ฐ,
toggleKey๊ฐ์ none์ผ๋ก ๋ฐ๊ฟ์ฃผ๋ฉด ๋๋ค. (๊ธฐ๋ณธ์ true ์ค์ ๋์ด์๋ค.)
series.slices.template.set("toggleKey", "none");
๊ทธ๋ฆฌ๊ณ ํด๋ฆญ์ pull-out๋๋ ์ฌ์ด์ฆ๋ฅผ ์กฐ์ ํ๊ณ ์ถ๋ค๋ฉด
pieSeries.slices.template.states.create("active", {
shiftRadius: 10, // <- ๊ธฐ๋ณธ์ด 20์ ๋์ธ๊ฒ๊ฐ๋ค.
});
๋ค์๊ณผ ๊ฐ์ด ์กฐ์ ํ๋ฉด ๋๋ค.
'๊ฐ๋ฐ ๐พ > ์ผํ๊ณ ,์ ๋ฆฌํ๊ธฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๊ฐ์ธ ์ฌ์ด๋ ํ๋ก์ ํธ ๋ฐฐํฌ๊น์ง ์๋ฃ ํ๊ธฐ (2) | 2023.11.03 |
---|---|
React์์ Router state ์ฌ์ฉ (0) | 2023.01.18 |