[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 배열을 수정하면 됩니다. 데이터가 많거나 동적으로 생성되는 경우, 서버에서 데이터를 가져와서 사용할 수도 있습니다.

참고 문서: