Vue.jsでデータを見える化!Vue-Chartjs活用で高機能グラフを爆速実装

Vue.js をTypeScriptで書く!書き方の違いを比較 − vue-property-decorator

目次

Webアプリケーション開発において、複雑なデータをユーザーに分かりやすく伝えることは非常に重要です。特に数値データを直感的に理解してもらうには、グラフによるデータ可視化が欠かせません。しかし、ゼロからグラフ機能を実装するのは手間がかかるもの。この記事では、Vue.jsプロジェクトで手軽に高機能なグラフを実装できるライブラリ「Vue-Chartjs」に焦点を当て、その基本的な使い方から具体的な実装例までを徹底解説します。グラフ実装に時間をかけたくない方、より表現力豊かなUIを目指したいVue.js開発者は必見です!

Vue-Chartjsとは?Vue.jsでグラフを実装するメリット

Vue-Chartjsは、世界中で人気の高いJavaScriptグラフライブラリChart.jsをVue.jsで簡単に扱えるようにするラッパーライブラリです。Chart.jsが提供する棒グラフ、折れ線グラフ、円グラフなど多様なグラフタイプを、Vueのコンポーネントとして宣言的に記述できるのが最大の特長。データとUIの連動がスムーズで、複雑なデータも直感的に可視化できます。Vue.js開発者であれば、ほぼ学習コストなしで導入でき、洗練されたグラフUIを素早くアプリケーションに組み込むことが可能です。

Vue-Chartjsの導入から基本的なグラフ表示まで

まずはVue-Chartjsをプロジェクトに導入し、簡単な棒グラフを表示するまでの手順を見ていきましょう。

# npmでインストール
npm install vue-chartjs chart.js

# yarnでインストール
yarn add vue-chartjs chart.js

次に、グラフを表示するためのVueコンポーネントを作成します。ここでは棒グラフ(Bar Chart)の例です。

// components/MyBarChart.vue
<script setup>
import { Bar } from 'vue-chartjs';
import {
  Chart as ChartJS,
  Title,
  Tooltip,
  Legend,
  BarElement,
  CategoryScale,
  LinearScale
} from 'chart.js';

// Chart.jsで必要なモジュールを登録
ChartJS.register(Title, Tooltip, Legend, BarElement, CategoryScale, LinearScale);

const chartData = {
  labels: ['1月', '2月', '3月', '4月', '5月'],
  datasets: [
    {
      label: '月間売上',
      backgroundColor: '#f87979',
      data: [40, 20, 12, 39, 10]
    }
  ]
};

const chartOptions = {
  responsive: true,
  maintainAspectRatio: false
};
</script>

<template>
  <div style="width: 100%; height: 300px;">
    <Bar :data="chartData" :options="chartOptions" />
  </div>
</template>
エンジニア

Vue-Chartjsを使えば、Chart.jsの機能をVueコンポーネントとして直感的に扱えますね。データとオプションをPropsで渡すだけで、多様なグラフが簡単に作れるのが魅力です。

デザイナー

グラフは情報の伝わりやすさに直結するので、デザインの自由度が高いのは助かります。色やフォント、ツールチップなども細かく設定できるから、アプリの雰囲気に合わせてカスタマイズしやすいですね!

実践!様々なグラフタイプの表示と高度なカスタマイズ

Vue-Chartjsは棒グラフだけでなく、折れ線グラフ(Line)、円グラフ(Doughnut/Pie)、レーダーチャート(Radar)など、多種多様なグラフタイプに対応しています。それぞれのグラフは専用のコンポーネント(例: <Line>, <Doughnut>)を使用し、Chart.jsの豊富なオプションを通じて、色の変更、軸の調整、ツールチップのカスタマイズなど、細部にわたるデザイン調整が可能です。さらに、リアクティブなデータ更新にも対応しており、Vue.jsのデータが変更されるとグラフも自動的に再描画されます。

折れ線グラフで複数データセットと動的更新

複数系列のデータを一つのグラフに表示したり、データがリアルタイムで変化するようなシーンを想定した折れ線グラフの例を見てみましょう。ここでは、データの動的な更新も実装しています。

// components/MyLineChart.vue
<script setup>
import { Line } from 'vue-chartjs';
import {
  Chart as ChartJS,
  Title,
  Tooltip,
  Legend,
  LineElement,
  PointElement,
  CategoryScale,
  LinearScale
} from 'chart.js';
import { ref, onMounted } from 'vue';

ChartJS.register(Title, Tooltip, Legend, LineElement, PointElement, CategoryScale, LinearScale);

const chartData = ref({
  labels: ['週1', '週2', '週3', '週4'],
  datasets: [
    {
      label: '訪問者数',
      backgroundColor: '#41B883',
      borderColor: '#41B883',
      data: [65, 59, 80, 81],
      tension: 0.3 // 線の滑らかさ
    },
    {
      label: '購入者数',
      backgroundColor: '#E46651',
      borderColor: '#E46651',
      data: [28, 48, 40, 19],
      tension: 0.3
    }
  ]
});

const chartOptions = {
  responsive: true,
  maintainAspectRatio: false
};

// データ更新の例(3秒後にデータを変更)
onMounted(() => {
  setTimeout(() => {
    chartData.value.datasets[0].data = [80, 70, 60, 90];
    chartData.value.datasets[1].data = [35, 55, 45, 25];
    chartData.value.labels = ['初期', '変更1', '変更2', '変更3']; // ラベルも変更可能
  }, 3000);
});
</script>

<template>
  <div style="width: 100%; height: 300px;">
    <Line :data="chartData" :options="chartOptions" />
  </div>
</template>
  • Vue-ChartjsはChart.jsの強力なグラフ機能をVue.jsで簡単に利用できるラッパーライブラリです。
  • 基本的なインストールから多様なグラフタイプの表示、高度なカスタマイズまで幅広く対応しています。
  • 宣言的なUIとリアクティブなデータ更新により、動的でインタラクティブなデータ可視化が実現可能です。
  • アプリケーションに合わせたグラフデザインや、複数データセットの表示も容易に行えるため、開発効率が大幅に向上します。
  • ぜひVue-Chartjsを活用して、ユーザーに魅力的なデータ体験を提供してください!

サンプルコード

https://github.com/isystk/vuechart-sample

1件のコメント

コメントを残す

入力エリアすべてが必須項目です。メールアドレスが公開されることはありません。

内容をご確認の上、送信してください。