[javascript] Recharts에서 차트의 데이터를 JSON 파일로 내보내는 방법은 무엇인가요?
import { BarChart, Bar, XAxis, YAxis, CartesianGrid, Tooltip, Legend } from 'recharts';
import { saveAs } from 'file-saver';
const data = [
{ name: 'A', value: 20 },
{ name: 'B', value: 30 },
{ name: 'C', value: 40 },
{ name: 'D', value: 10 }
];
const Chart = () => {
const exportChartData = () => {
const jsonData = JSON.stringify(data);
const blob = new Blob([jsonData], { type: 'application/json' });
saveAs(blob, 'chart_data.json');
};
return (
<div>
<BarChart width={400} height={300} data={data}>
<CartesianGrid strokeDasharray="3 3" />
<XAxis dataKey="name" />
<YAxis />
<Tooltip />
<Legend />
<Bar dataKey="value" fill="#8884d8" />
</BarChart>
<button onClick={exportChartData}>Export Data</button>
</div>
);
}
export default Chart;
위 코드에서는 BarChart 컴포넌트로 차트를 생성하고, saveAs 함수를 사용하여 데이터를 JSON 파일로 내보냅니다. exportChartData 함수는 버튼 클릭 시 호출되며, 데이터를 JSON 문자열로 변환한 후 Blob 객체를 생성하여 이를 파일로 저장합니다.
차트 데이터를 변경하고 싶다면 data 배열을 수정하면 됩니다. 데이터가 많거나 동적으로 생성되는 경우, 서버에서 데이터를 가져와서 사용할 수도 있습니다.
참고 문서:
- Recharts 공식 문서
- FileSaver.js 라이브러리