Elsaの技術日記(徒然なるままに)

主に自分で作ったアプリとかの報告・日記を記載

MENU

React レーダーチャート表示

引き続きポケモンレーダーチャートをReactに移行中!!
elsammit-beginnerblg.hatenablog.com


前回、内部で持っているcsvファイルを読み出せないと書きましたが、、、
解決しました!!

って言っても、フォルダのパスが違っていた。。。orz
それで数時間つぶしてしまったのか。。。泣
これから注意します!!


で、今回はメインどころのレーダーチャートを表示する部分の移行になり実施しました!!
こちらはReact用にライブラリが用意されていたので、そちらの使い方について報告していこうと思います!!

■Reactでレーダーチャートを表示させるためには?

Reactでレーダーチャートや折れ線グラフ、棒グラフなどのグラフを描画するには、
”Recharts”を用いるとよいことがわかりました!!

公式HPはこちらになります。
サンプルコードもあったため、躓かずに進めることができました。
http://recharts.org/en-US


■Rechartsを用いたレーダーチャート実装

まず、Rechartsライブラリをインストールします。
インストールコマンドはこちらになります。

npm install recharts

そして、実装はこんな感じでOKです。

import React, { Component } from 'react';
import {
    RadarChart, Tooltip, PolarGrid, PolarAngleAxis, Radar
  } from 'recharts';


export default class Cooking extends React.Component  {
    Radar = () =>{
        const dataRadar = [
            { rank: 'HP', poke1: 100, poke2: 200 },
            { rank: '攻撃', poke1: 300, poke2: 100 },
            { rank: '防御', poke1: 150, poke2: 100 },
            { rank: '素早さ', poke1: 300, poke2: 100 },
            { rank: '特防', poke1: 200, poke2: 200 },
            { rank: '特攻', poke1: 100, poke2: 100 },
            ];
            
        return(<RadarChart // レーダーチャートのサイズや位置、データを指定
            height={400} width={500} cx="50%" cy="50%" data={dataRadar} //ここにArray型のデータを指定
                >
            <PolarGrid /> 
            <PolarAngleAxis
                dataKey="rank" //数値を表示したい値のキーを指定
            />
            <Radar //レーダーの色や各パラメーターのタイトルを指定
                name="pokemon1"  //hoverした時に表示される名前を指定 
                dataKey="poke1" //Array型のデータのパラメータータイトルを指定
                stroke="#8884d8"  //レーダーの線の色を指定
                fill="#8884d8" //レーダーの中身の色を指定
                fillOpacity={0.6} //レーダーの中身の色の薄さを指定
                    />
                <Radar //レーダーの色や各パラメーターのタイトルを指定
                    name="Mike"  //hoverした時に表示される名前を指定 
                    dataKey="poke2" //Array型のデータのパラメータータイトルを指定
                    stroke="#8884d8"  //レーダーの線の色を指定
                    fill="#A5A5A5A5" //レーダーの中身の色を指定
                    fillOpacity={0.6} //レーダーの中身の色の薄さを指定
                />
                <Tooltip /> //hoverすると各パラメーターの値が表示される
            </RadarChart>
        );
    }
    render() {
        return (<div>
                {this.Radar()}
        </div>);
    }
}

処理内容としてはソースコードに記載した通りですが、
rechartsをimportして、
タグでレーダーチャートの大きさや位置を指定し、
タグでパラメータをセットしていく感じです。


実行した結果はこんな感じになります。
f:id:Elsammit:20200815165744p:plain



■最後に

"ただの移行作業"と思って実施したポケモンレーダーチャートの移行ですが、結構勉強になることが多くてやってよかったと今は思っております。
もう山場は越えたかな?と思っており、あとはガリガリ作業を行っていくだけ!!
休み中には完成できるように頑張るぞ!!


。。。しかし暑いorz